钉钉的API、

关键的几个点:1、accesstoken的获取途径,需要严格按照步骤

2、请求需要注意 新获得覆盖上次获取的信息,所以需要避免重复的请求(尤其在同一个page中)

3、url问题,尤其在isv模式下,附件url参数之后,{corpid},一定需要全路径的,除了#之后的不需要

4、tempcode 需要保存起来,如果一旦获得permnentcode,就需要丢弃

===钉PAI的文档,error code的说明真的不行

受限,每打开一个新页面都需要做一次权限校验(),
在这种情况下,当你返回之前的页面,假如之前的页面有缓存的话,那之前页面的jsticket就已经过期了(因为你打开新页面获取了新的jsticket,导致老的jsticket过期了),所以会返回dd error{"message":"权限校验失败是081006","errorCode":3}

这种情况下,有两种解决方案:1.是缓存jsticket,服务端每两个小时更新一次,无论新页面还是老页面都使用同一个Jsticket。(推荐)
2.每次都取新的jsticket

我们之后将会对于jsticket的获取做一个优化,缓存jsticket这件事将由钉钉服务器来做;;;;




Redderrormessage权限校验失败是081006errorCode3




JSAPI权限校验这一块,觉得很不稳定,经常出现不成功。另外更严重的是,在权限校验WIFI下可以,换行··换成3G网络莫名其妙就不行!搞得我身心俱疲!





Q:jsapi权限校验时返回{message:“权限校验失败",errorCode:3},主要是签名不符合

尽量用单独线程来创建,即入口唯一

A:首先检查用来生成签名(signature)的jsapi_ticket是否过期(jsapi_ticket有效期为7200秒,而且当你请求了新的ticket之后,旧的ticket就失效了)。

然后检查生成签名的Url参数,与调用dd.config 所在的url是否一致

可以使用调试工具来生成jsapi_ticket和signature,并和你实际使用的进行对比。

=======>要把签名时间戳 也保留下来===》signature不会变--page url

====》根据pageUrl-》查到 timestamp,查找到signature

====》当jsapi——ticket变化,更新所有pageUrlkeys-value

dd.config({
    agentId: '', // 必填,微应用ID
    corpId: '',//必填,企业ID
    timeStamp: , // 必填,生成签名的时间戳
    nonceStr: '', // 必填,生成签名的随机串
    signature: '', // 必填,签名
    jsApiList: ['device.notification.alert', 'device.notification.confirm'] // 必填,需要使用的jsapi列表
});
dd.config({
    agentId: '', // 必填,微应用ID
    corpId: '',//必填,企业ID
    timeStamp: , // 必填,生成签名的时间戳
    nonceStr: '', // 必填,生成签名的随机串
    signature: '', // 必填,签名
    jsApiList: ['device.notification.alert', 'device.notification.confirm'] // 必填,需要使用的jsapi列表
});