Foxtable(狐表)用户栏目专家坐堂 → 钉钉获取CODE求助


  共有2558人关注过本帖树形打印复制链接

主题:钉钉获取CODE求助

帅哥,在线噢!
linyunu
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:250 积分:1864 威望:0 精华:2 注册:2018/1/16 20:53:00
钉钉获取CODE求助  发帖心情 Post By:2018/6/22 10:01:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:新建文本文档 (2).txt


此主题相关图片如下:uc截图20180622095614.png
按此在新窗口浏览图片


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/22 10:22:00 [只看该作者]

类似的js-sdk的调用,参考

 

http://www.foxtable.com/mobilehelp/scr/0247.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
zcw2764
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:295 积分:4712 威望:0 精华:0 注册:2011/5/28 8:21:00
  发帖心情 Post By:2018/6/22 10:22:00 [只看该作者]

先在web\lib文件夹下建立一个js文件,内容如下,将获取的code给叫code的cookie
dd.ready(function () {
    dd.runtime.permission.requestAuthCode({
        corpId:"*****",
        onSuccess:function(result) {
            document.cookie = 'code =  ' + result.code
        },
        onFail:function(err) {}
    })
});
[此贴子已经被作者于2018/6/22 10:57:48编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
zcw2764
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:295 积分:4712 威望:0 精华:0 注册:2011/5/28 8:21:00
  发帖心情 Post By:2018/6/22 10:32:00 [只看该作者]

再建一个网页,如login.htm,内容如下:可通过code获取userid

If e.cookies.ContainsKey("code") Then
    code = e.cookies("code")
    
    Dim CorpId As String= "*****" 
    Dim url As String = "https://oapi.dingtalk.com/user/getuserinfo?access_token={0}&code={1}"
    Dim hc As New HttpClient(CExp(url,Functions.Execute("GetAccessToken"),code))
    Dim ret As String = hc.GetData()
    If ret = "" Then '如果失败,再尝试一次
        hc.GetData()
    End If
    
    Dim jo As JObject = JObject.Parse(ret)
    
    If jo("errcode") = "0" Then
        userid = jo("userid")
        ... '验证代码后跳转
        ...

    Else
        With wb.AddMsgPage("","msgpage","获取钉钉用户ID失败","原因:" & vbcrlf & jo("errmsg").ToString)
            .icon= "Warn"
        End With
        e.WriteString(wb.Build)
        Return ""
    End If

Else
    wb.AppendHTML("<script src='http://g.alicdn.com/dingding/open-develop/1.9.0/dingtalk.js'></script>",True) '引入JS-SDK库
    wb.AppendHTML("<script src='./lib/jssdk.js'></script>") '引入脚本文件
     wb.InsertHTML("<meta http-equiv='Refresh' c>") 刷新获取userid
    e.WriteString(wb.Build)
    Return ""
End I
[此贴子已经被作者于2018/6/22 10:42:35编辑过]

 回到顶部
帅哥,在线噢!
linyunu
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:250 积分:1864 威望:0 精华:2 注册:2018/1/16 20:53:00
  发帖心情 Post By:2018/6/22 10:54:00 [只看该作者]

非常感谢!我试试看

 回到顶部
帅哥,在线噢!
linyunu
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:250 积分:1864 威望:0 精华:2 注册:2018/1/16 20:53:00
不存在的临时授权码  发帖心情 Post By:2018/6/22 14:36:00 [只看该作者]

请问第一次正确调用了,退出再打开显示【不存在的临时授权码】这个怎么解决

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/22 14:46:00 [只看该作者]

你是如何调用的?

 

当您通过临时授权码(tmp_auth_code)和套件token(suite_access_token)去换取永久授权码(permanent_code)之时,需要保证suite_access_token,tmp_auth_code都没有过期。


 回到顶部
帅哥哟,离线,有人找我吗?
zcw2764
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:295 积分:4712 威望:0 精华:0 注册:2011/5/28 8:21:00
  发帖心情 Post By:2018/6/22 14:47:00 [只看该作者]

因code码有时效性,在验证正确或失败均删除code这个cookie,下次再获取新的code。验证成功后记住userid等参数,不用频繁去获取钉钉用户临时code码。
[此贴子已经被作者于2018/6/22 15:04:19编辑过]

 回到顶部
帅哥,在线噢!
linyunu
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:250 积分:1864 威望:0 精华:2 注册:2018/1/16 20:53:00
  发帖心情 Post By:2018/6/22 15:17:00 [只看该作者]

获取的这个CODE有效期是5分钟

是不是可以在把code写入cookie的时候一起写上失效时间呢?

如果可以js 应该怎么改

先在web\lib文件夹下建立一个js文件,内容如下,将获取的code给叫code的cookie
dd.ready(function () {
    dd.runtime.permission.requestAuthCode({
        corpId:"*****",
        onSuccess:function(result) {
            document.cookie = 'code =  ' + result.code
        },
        onFail:function(err) {}
    })
});

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/22 15:39:00 [只看该作者]

js操作cookie,参考,写一个setCookie函数调用。

 

https://www.baidu.com/baidu?wd=js+cookie&tn=monline_4_dg

 

 


 回到顶部
总数 11 1 2 下一页