Foxtable(狐表)用户栏目专家坐堂 → 钉钉接口


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

主题:钉钉接口

帅哥哟,离线,有人找我吗?
weibu
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:636 积分:5153 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2021/2/22 17:54:00 [只看该作者]

老师是跟在客户端建立web数据源一样吗?这个我会弄;
但这个url就是web数据源中的
客户端数据链接:
http://41.13.232.56:6808/DataServer.htm  ‘URL就是这个吗?
-FormD5ata-

 回到顶部
帅哥,在线噢!
有点蓝
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/22 20:04:00 [只看该作者]

不是建立web数据源,没有半毛钱的关系。回调的url是给钉钉服务器访问的,不是给自己的客户端访问的。也就是说要提供一个网站地址,让钉钉的服务器访问,然后向这个地址推送消息。这种功能只能是在服务端处理,和客户端没有半毛钱的关系
[此贴子已经被作者于2021/2/22 20:05:33编辑过]

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


加好友 发短信
等级:三尾狐 帖子:636 积分:5153 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2021/2/22 20:09:00 [只看该作者]

老师能给我说下建立在服务端建立http服务的方法步奏吗?

 回到顶部
帅哥,在线噢!
有点蓝
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/22 21:11:00 [只看该作者]

参考微信的用法:http://www.foxtable.com/mobilehelp/topics/0175.htm

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


加好友 发短信
等级:三尾狐 帖子:636 积分:5153 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2021/2/22 23:51:00 [只看该作者]

编辑完请求地址,单击保存按钮时,开放平台会向你配置的网址推送一个 application/json 格式的 POST 请求, 用于验证你配置的网址的合法性。请求如下:

{
    "encrypt": "ajls384kdjx98XX" // 加密字符串,解密方法请看下方的消息加解密
}

当你收到开放平台的POST验证请求时,你需要做解密处理,并在1500ms内返回包含success的加密字符串给钉钉,否则钉钉服务器将认为url不合法。


老师这个代码该如何写啊?

Select Case e.path

    Case "web" 

        If e.Request.HttpMethod = "GET" Then

            Dim token = "liO93UqdEcOwpu4Sy9rYS9gT09Ktyqve1u" '必须和设置的Token相同

            Dim signature As String = e.GetValues("signature")

            Dim timestamp As String = e.GetValues("timestamp") 

            Dim nonce As String = e.GetValues("nonce") 

            Dim encrypt As String = e.GetValues("encrypt")

            Dim aryTmp() As String = {token,timestamp,nonce}

            Array.Sort(aryTmp)

            Dim strTmp As String = String.Join("", aryTmp)

            strTmp = Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strTmp, "khtbRfeKOxpSK5bDF94tpQssViqhOCUV5ObavW")       '这个我写的是aes_key

            If signature = strTmp.ToLower() Then

                e.WriteString(encrypt)

            End If

        End If

End Select


老师这是在 httprequest中写的代码,保存是报错。提示:

HTTP请求结果校验返回字段值失败 HttpRequest: curl 'http://29.60.17.116:6807/web/?signature=2c7f51416e5915e217e4a2837560da0c4&msg_signature=2c7f51416915e2c7e54c7560da0c4&timestamp=1614040020384&nonce=76gxOJzi' -d '{"encrypt":"QlzyVA1wOPI3PJM/k2OwVyYL9C/thbWRDWnJIPacc6dasvGrv7mQKmrPtI10lH/M5/P7Htl57VtiukahLKoPYnJQ4wC2J/kPKg5SlOjRGNhzpwLmjajeAt5P"}' -H 'Content-Type:application/json' HttpCode:200 HttpReponse:

[此贴子已经被作者于2021/2/23 8:44:58编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/23 10:24:00 [只看该作者]

试试

全局代码
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建文本文档.txt



httprequst事件
Select Case e.path
    
    Case "web"
        
        If e.Request.HttpMethod = "GET" Then
            
            Dim token = "liO93UqdEcOwpu4Sy9rYS9gT09Ktyqve1u" '必须和设置的Token相同
            
            Dim signature As String = e.GetValues("signature")
            
            Dim timestamp As String = e.GetValues("timestamp")
            
            Dim nonce As String = e.GetValues("nonce")
            
            Dim encrypt As String = e.PostValues("encrypt") '如果接收不到试试:Dim encrypt As String = e.PlainText
            
            Dim jo As JObject = JObject.Parse(encrypt )
            Dim ding As new DingTalkEncryptor("tokenxxxx", "encodingAesKey:o1w0aum42yaptlz8alnhwikjd3jenzt9cb9wmzptgus", "corpId:dingxxxxxx")
            Dim res As String = ding.getDecryptMsg(signature , timestamp, nonce , encrypt)
            msgbox(res) '显示解密的事件内容
            '其它处理
            e.WriteString(ding.getEncryptedMap("success")) '返回success的加密数据
            
        End If
        
        
End Select


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


加好友 发短信
等级:三尾狐 帖子:636 积分:5153 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2021/2/23 13:39:00 [只看该作者]

万分感谢蓝老师。
我做了两步:1.建立全局变量DingTalkEncryptor;并把文档的代码全部复制到里面;重启狐表;
                2.把httprequst事件修改如下;但报错下面代码报错


图片点击可在新窗口打开查看此主题相关图片如下:错误123214.png
图片点击可在新窗口打开查看

Select Case e.path 
    Case "web"       
        If e.Request.HttpMethod = "GET" Then        
            Dim token = "QoXd8egwbB" '必须和设置的Token相同          
            Dim signature As String = e.GetValues("signature")        
            Dim timestamp As String = e.GetValues("timestamp")        
            Dim nonce As String = e.GetValues("nonce")         
            Dim encrypt As String = e.PostValues("encrypt") '如果接收不到试试:Dim encrypt As String = e.PlainText       
            Dim jo As JObject = JObject.Parse(encrypt )
            Dim ding As new DingTalkEncryptor("token:QoXd8ewbB", "encodingAesKey:TMjDLyrHDTfCMLr4SyiJNJt9oqY02Tymnl9A6eXvv", "corpId:dingdb4f9d27f74502f6a9a97fcb1e09")
            Dim res As String = ding.getDecryptMsg(signature , timestamp, nonce , encrypt)
            msgbox(res) '显示解密的事件内容
            '其它处理
            e.WriteString(ding.getEncryptedMap("success")) '返回success的加密数据          
        End If     
End Select

 回到顶部
帅哥,在线噢!
有点蓝
  28楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/23 14:02:00 [只看该作者]

msgbox(res) '显示解密的事件内容
            '其它处理
dim msg  = ding.getEncryptedMap("success")
Dim jo As New JObject
jo("msg_signature") = msg("msg_signature")
jo("timeStamp") = msg("timeStamp")
jo("nonce") = msg("nonce")
jo("encrypt") = msg("encrypt")
            e.WriteString(jo.ToString) '返回success的加密数据  

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


加好友 发短信
等级:三尾狐 帖子:636 积分:5153 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2021/2/23 15:04:00 [只看该作者]

老师代码修改为:下面代码

还是报错:HTTP请求结果校验返回字段值失败 HttpRequest: curl 

Select Case e.path 
    Case "web"       
        If e.Request.HttpMethod = "GET" Then        
            Dim token = "QoXdbB" '必须和设置的Token相同          
            Dim signature As String = e.GetValues("signature")        
            Dim timestamp As String = e.GetValues("timestamp")        
            Dim nonce As String = e.GetValues("nonce")         
            Dim encrypt As String = e.PostValues("encrypt") '也试过:Dim encrypt As String = e.PlainText       
            Dim j As JObject = JObject.Parse(encrypt )
            Dim ding As new DingTalkEncryptor("token:QoXdbB", "encodingAesKey:TMjDLyrHDTfCMLr4Syi2Tymnl9A6eXvv", "corpId:dingdb4fa1e09")
            Dim res As String = ding.getDecryptMsg(signature , timestamp, nonce , encrypt)
            msgbox(res) '显示解密的事件内容
            '其它处理
           dim msg  = ding.getEncryptedMap("success")
             Dim jo As New JObject
             jo("signature") = msg("signature")   msg_signature修改为signature
            jo("timeStamp") = msg("timeStamp")
           jo("nonce") = msg("nonce")
           jo("encrypt") = msg("encrypt")
            e.WriteString(jo.ToString) '返回success的加密数据          
        End If     
End Select

 回到顶部
帅哥,在线噢!
有点蓝
  30楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/23 15:13:00 [只看该作者]

Dim ding As new DingTalkEncryptor("QoXdbB", "TMjDLyrHDTfCMLr4Syi2Tymnl9A6eXvv", "dingdb4fa1e09")

 回到顶部
总数 81 上一页 1 2 3 4 5 6 7 8 9 下一页