我们公司用小程序开发者工具+php+mysql想开发一款钉钉企业内部应用,需要调钉钉的接口获取用户信息,也就是oapi,dingtalk.com这个接口,服务器是windows server 2012 r2版本,出现的问题很蹊跷。白天调用一切正常,可以返回用户信息,一到晚上(大概5点半左右)就开始调用不通,获取不到用户信息。每天都是这样,这是中了什么邪?把相应调用位置的代码贴出来,求大神赐教。
dd.getAuthCode({
success:function(res){
authCode = res.authCode;
//dd.alert({content:"authcode="+authCode});
dd.setStorage({
key: 'authCode',
data: authCode,
});
dd.httpRequest({
url: 'https://oapi.dingtalk.com/gettoken?appkey='+appkey+'&appsecret='+appsecret,
method: 'GET',
dataType: 'json',
success: function(res) {
access_token = res.data.access_token;
//dd.alert({content:"token="+access_token});
dd.setStorage({
key: 'access_token',
data: access_token,
});
dd.httpRequest({
url: 'https://oapi.dingtalk.com/user/getuserinfo?access_token=' + access_token + '&code=' + authCode,
method:'GET',
dataType:'json',
success: function (res) {
user = res.data;
//dd.alert({content:user.name});
dd.setStorage({
key:'username',
data:user.name,
});
dd.setStorage({
key:'userid',
data:user.userid,
});
省去后面代码
首先你的authCode获取之后似乎没有复用,就没必要放缓存了。
其次获取用户信息应该写在后端,你这么直接把appkey、appsecret、accesstoken、authCode全暴露在前端,被抓包就不好了。
最后我看不出来你的代码有什么问题,可能是因为贴的不完整吧