1.首先引用两个钉钉的js
js xml"> js-tag"><js-title">script js-attribute">type=js-value">"text/javascript" js-attribute">src=js-value">"http://g.alicdn.com/dingding/open-develop/1.6.9/dingtalk.js">js-tag"></js-title">script>
js-tag"><js-title">script js-attribute">type=js-value">"text/javascript" js-attribute">src=js-value">"http://g.alicdn.com/dingding/dingtalk-pc-api/2.3.1/index.js">js-tag"></js-title">script>
2.判断pc端还是移动端的钉钉(此例子是Vue操作,React类似)
js javascript"> mounted(){
js-keyword">if(DingTalkPC.ua.isDesktop&&DingTalkPC.ua.isInDingTalk){js-comment">//PC端钉钉执行此方法
js-keyword">let surl=window.location.href;
$.ajax({
method: js-string">'post',
url: author+js-string">'config',
data:{
key:corpId,
url:surl
},
success: js-function">js-keyword">functionjs-params">(data) {
dd.config({
agentId:data.agentid, js-comment">// 必填,微应用ID
corpId: data.corpid,js-comment">//必填,企业ID
timeStamp: data.timestamp, js-comment">// 必填,生成签名的时间戳
nonceStr: data.noncestr, js-comment">// 必填,生成签名的随机串
signature: data.sign, js-comment">// 必填,签名
type:js-number">0, js-comment">//选填,0表示微应用的jsapi,1表示服务窗的jsapi,不填默认为0。该参数从dingtalk.js的0.8.3版本开始支持
jsApiList : [ js-string">'runtime.permission.requestAuthCode' ] js-comment">// 必填,需要使用的jsapi列表,注意:不要带dd。
});
DingTalkPC.runtime.permission.requestAuthCode({
corpId: data.corpid, js-comment">//企业ID
onSuccess: js-function">js-keyword">functionjs-params">(result) {
js-keyword">this.CodeFunc(result.code)
js-comment">//alert(JSON.stringify(result))
js-comment">/*{
code: 'hYLK98jkf0m' //string authCode
}*/
}.bind(js-keyword">this),
onFail : js-function">js-keyword">functionjs-params">(err) {}
})
}.bind(js-keyword">this),
error: js-function">js-keyword">functionjs-params">(jqXHR, textStatus, errorThrown) {
console.log(textStatus + js-string">' ' + errorThrown);
}
});
}
dd.ready(js-function">js-keyword">functionjs-params">(){js-comment">//移动端钉钉执行此方法
dd.runtime.permission.requestAuthCode({
corpId:corpId,
onSuccess: js-function">js-keyword">functionjs-params">(result) {
js-keyword">this.CodeFunc(result.code)
js-comment">/*{
code: 'hYLK98jkf0m' //string authCode
}*/
}.bind(js-keyword">this),
onFail : js-function">js-keyword">functionjs-params">(err) {
alert(err)
}
});
}.bind(js-keyword">this))
)
3根据获取到的Code来获取userid
js javascript"> CodeFunc(e){
$.ajax({
method: js-string">'post',
url: author+js-string">'userinfo',
data:{
code:e,
},
success: js-function">js-keyword">functionjs-params">(data) {
alert(data)
alert(js-built_in">JSON.parse(data).userid)
}.bind(js-keyword">this),
error: js-function">js-keyword">functionjs-params">(jqXHR, textStatus, errorThrown) {
console.log(textStatus + js-string">' ' + errorThrown);
}
});
}
4.最后根据userid来进行登录操作