{
errorCode : "7",
errorMessage: "API not authed"
}
{
errorCode : "9",
errorMessage : "无效的agentid"
}
####因为不是企业内部应用,所以没有agentId,我使用了suiteId来替代agentId(使用过了appId suiteKey仍然报无效的agentid)
//获取Ticket
TimeoutDataVo jsApiTicketData = getJsApiTicket(corpId);
if (jsApiTicketData==null) { return null; }
String ticket = jsApiTicketData.getData().toString();
long curDate = System.currentTimeMillis();
// 获取签名,随机串暂时采用corpId
String sign = DingTalkUtils.sign(ticket, corpId, curDate, currentUrl);
// 返回鉴权所需信息
return new JsApiAuthInfoVo()
.setCorpId(corpId)
.setAgentId(suiteId)
.setNonceStr(corpId)
.setSignature(sign)
.setType(0)
.setJsApiList(new ArrayUtils.MyList<String>()
.chainAdd("runtime.info",
/* PC端选择企业内部的人 Android iOS PC */
"biz.contact.choose",
/* confirm 框 Android iOS PC */
"device.notification.confirm",
/* alert 框 Android iOS PC */
"device.notification.alert",
/* prompt 框 Android iOS PC */
"device.notification.prompt",
/* DING 1.0发钉 PC */
"biz.ding.post",
/* 在新窗口上打开链接 Android iOS PC */
"biz.util.openLink",
/* 选人和部门 */
"biz.contact.complexPicker"
))
.setTimeStamp(curDate);
// ======== JSAPI 鉴权 ======
export const authJsApi = corpId => {
return new Promise((resolve, reject) => {
axios.request({
url: `/ding-service/jsapi-auth/${corpId}`,
method: 'get',
}).then(res=> {
let { agentId, timeStamp, nonceStr, signature, type, jsApiList } = res.data;
console.log(agentId)
dd.config({ agentId, corpId, timeStamp, nonceStr, signature, jsApiList, type, });
resolve()
}).catch(err=> reject(err) );
});
}
已解决, 钉钉第三方企业内部微应用,鉴权方式agentId换成appId, 官方文档中并没有说明,有点坑。
// ======== JSAPI 鉴权 ======
export const authJsApi = corpId => {
return new Promise((resolve, reject) => {
axios.request({
url: `/ding-service/jsapi-auth/${corpId}`,
method: 'get',
}).then(res=> {
let { agentId, timeStamp, nonceStr, signature, type, jsApiList } = res.data;
console.log(agentId)
dd.ready(()=>{
dd.config({ appId:agentId, corpId, timeStamp, nonceStr, signature, jsApiList:['biz.contact.complexPicker'], type: 0, });
})
resolve()
}).catch(err=> reject(err) );
});
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。