以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何解决新版钉钉API用HttpClient请求始终不成功的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=179566)

--  作者:zcw2764
--  发布时间:2022/8/30 9:27:00
--  [求助]如何解决新版钉钉API用HttpClient请求始终不成功的问题
新版钉钉服务端API用HttpClient请求始终返回400错误,文档要求传递body参数,用content或formdata传递appKey和appSecret都不得行

钉钉API文档地址:https://open.dingtalk.com/document/orgapp-server/obtain-the-access_token-of-an-internal-app

Dim appKey, appSecret As String
Dim jo1 As New JObject

appKey = "******"
appSecret = "******"

jo1("appKey") = appKey
jo1("appSecret") = appSecret

Dim hc As New HttpClient("https://api.dingtalk.com/v1.0/oauth2/accessToken")

hc.C

hc.Content = CompressJson(jo1)

hc.FormData.Add("appKey", appKey)

hc.FormData.Add("appSecret", appSecret)

Dim ret As String = hc.getData()

Output.Show(ret)

--  作者:有点蓝
--  发布时间:2022/8/30 9:43:00
--  
个人的建议是使用阿里云提供的sdk,不建议调用自己web接口

试试
……
Dim hc As New HttpClient("https://api.dingtalk.com/v1.0/oauth2/accessToken")
hc.ContentType = "application/json"
hc.Content = CompressJson(jo1)
Dim ret As String = hc.getData()
Output.Show(ret)

--  作者:zcw2764
--  发布时间:2022/8/30 11:26:00
--  
如何使用SDK呢?
--  作者:有点蓝
--  发布时间:2022/8/30 11:52:00
--  
论坛搜索“钉钉”,比如
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=136663&replyID=&skin=1

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=145793&replyID=&skin=1

--  作者:有点蓝
--  发布时间:2022/8/30 11:53:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=170278&skin=0
--  作者:zcw2764
--  发布时间:2022/8/30 13:06:00
--  
新版钉钉API没有.net的sdk,有c#的能不能用怎么用
--  作者:有点蓝
--  发布时间:2022/8/30 13:32:00
--  
肯定有.net的sdk。c#就是.net的,Foxtable一样可以用:https://open.dingtalk.com/document/resourcedownload/download-server-sdk
--  作者:z769036165
--  发布时间:2022/8/30 21:03:00
--  
我之前用新版的http连接没问题啊,检查一下AppKey和AppSecret是否正确
--  作者:zcw2764
--  发布时间:2022/8/31 13:39:00
--  
sdk需要引用Newtonsoft.Json 9.0.0.0,将系统自带版本是12.0.2.2322替换后,又有错误提示需要12.0.0.0版本的,按论坛里搜到的办法都不能解决这个问题
--  作者:有点蓝
--  发布时间:2022/8/31 13:46:00
--  
不要使用第三方的Newtonsoft.Json.dll覆盖foxtable自带的Newtonsoft.Json.dll。如果已经覆盖,请重装Foxtable还原

如果要使用其他版本Newtonsoft.Json.dll,参考这里设置:
http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=137401&replyID=11825&skin=1

……
        <bindingRedirect oldVersion="4.0.20191.359" newVersion="4.0.20183.338" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json"
          publicKeyToken="30ad4fe6b2a6aeed"
          culture="neutral" />
        <bindingRedirect oldVersion="9.0.0.0" newVersion="12.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
……