大概业务以及过程
安装gdt-jsapi
- NPM 安装
npm install --save gdt-jsapi
# or
yarn add gdt-jsapi
- CDN 引入
<script src="https://g.alicdn.com/gdt/jsapi/1.9.22/index.js"></script>
如果 JSAPI 调用在页面初始化时就需要调用,则需要在dd.ready中进行调用。
小程序下需要import引入JSAPI依赖,H5通过CDN方式引入,不需要单独引入import
判断是否专有钉钉环境
- 官方提供的jsapi中的
getUserAgent(我失败了,具体不知道)
dd.getUserAgent().then(res => {
console.log(res);
}).catch(err => {
console.error(err)
})
- navigator.userAgent 设备判断 在跨平台,各种浏览器,移动设备兼容的时候,经常要根据设备、浏览器做特定调整,所以判断设备和浏览器的工作,经常会用到,这里做一下总结
判断设备,区分Android,iphone,ipad和其它
// 获取
let ua = navigator.userAgent.toLowerCase();
if (ua.match(/TaurusApp/i) != "taurusapp") {
// taurusapp专有钉钉环境
}
免登
- 获取免登授权码
getAuthCode,参数corpId
dd.getAuthCode({corpId : "************"}).then((result) =>{
if (result) {
console.log(JSON.stringify(result, null, null));
// code: 'hYLK98jkf0m' //string authCode
}
})
-
获取access_token (后端需求请求的接口,这边主要讲解前端,后端请查询官方文档) 【注意】正常情况下 access_token 有效期为7200秒,有效期内重复获取返回相同结果,并⾃动续期。
-
获取用户详情(后端需求请求的接口,这边主要讲解前端,后端请查询官方文档) 后端请求后返回格式如下。
请求:参数为上面请求getAuthCode返回的code
{
"success": true,
"content": {
"responseMessage": "成功",
"data": {
"account": "pishi.hy",
"accountId": 93,
"clientId": "mozi-developer-center",
"employeeCode": "pishi.hy",
"lastName": "洪阳",
"namespace": "local",
"nickNameCn": "洪阳",
"openid": "6f1a885a4020f3624b71570b74925d7b",
"realmId": 57,
"realmName": "绣花针测试租户",
"tenantUserId": "57$93"
},
"responseCode": "0"
}
}