以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 钉钉获取CODE求助 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=120706) |
||||
-- 作者:linyunu -- 发布时间:2018/6/22 10:01:00 -- 钉钉获取CODE求助
|
||||
-- 作者:有点甜 -- 发布时间:2018/6/22 10:22:00 -- 类似的js-sdk的调用,参考
http://www.foxtable.com/mobilehelp/scr/0247.htm
|
||||
-- 作者:zcw2764 -- 发布时间: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 -- 发布时间: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 -- 发布时间:2018/6/22 10:54:00 -- 非常感谢!我试试看 |
||||
-- 作者:linyunu -- 发布时间:2018/6/22 14:36:00 -- 不存在的临时授权码 请问第一次正确调用了,退出再打开显示【不存在的临时授权码】这个怎么解决 |
||||
-- 作者:有点甜 -- 发布时间:2018/6/22 14:46:00 -- 你是如何调用的?
当您通过临时授权码(tmp_auth_code)和套件token(suite_access_token)去换取永久授权码(permanent_code)之时,需要保证suite_access_token,tmp_auth_code都没有过期。 |
||||
-- 作者:zcw2764 -- 发布时间:2018/6/22 14:47:00 -- 因code码有时效性,在验证正确或失败均删除code这个cookie,下次再获取新的code。验证成功后记住userid等参数,不用频繁去获取钉钉用户临时code码。 [此贴子已经被作者于2018/6/22 15:04:19编辑过]
|
||||
-- 作者:linyunu -- 发布时间: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) {} }) }); |
||||
-- 作者:有点甜 -- 发布时间:2018/6/22 15:39:00 -- js操作cookie,参考,写一个setCookie函数调用。
https://www.baidu.com/baidu?wd=js+cookie&tn=monline_4_dg
|