蓝老师,调通了。谢谢。下面是修改多次的成功代码:
Select Case e.path
Case "web"
Dim token = "Token" '必须和设置的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.PlainText
Dim jo As JObject = JObject.Parse(encrypt )
Dim ding As new DingTalkEncryptor("Token", "Token", "CorpId")
Dim res As String = ding.getDecryptMsg(signature , timestamp, nonce , jo("encrypt"))
'其它处理
Dim msg = ding.getEncryptedMap("success")
Dim po As New JObject
po("msg_signature") = cstr(msg("msg_signature"))
po("timeStamp") = cstr(msg("timeStamp"))
po("nonce") = cstr(msg("nonce"))
po("encrypt") = cstr(msg("encrypt"))
e.WriteString(po.ToString) '返回success的加密数据
End Select
现在我这边想钉钉上修改了部门,我的系统同步更新修改的部门,该怎么写代码?我的逻辑是通过事件订阅取到哪些DeptId修改了,然后利用服务端API的端口更新方式获取修改了的部门详情,并更新到自己的系统;
下面是通过API获取部门详情并更新到自己系统的代码;但如何获取是哪些DeptId修改了?这个代码加在哪里?如何写?
Dim TX1 As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim TX2 As WinForm.TextBox = e.Form.Controls("TextBox2")
Dim access_token As String = Functions.Execute("access_token",TX1.TEXT,TX2.TEXT)
Dim client As DingTalk.Api.IDingTalkClient = New DingTalk.Api.DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/department/listsub")
Dim req As DingTalk.Api.Request.OapiV2DepartmentListsubRequest = New DingTalk.Api.Request.OapiV2DepartmentListsubRequest()
req.SetHttpMethod("POST")
Dim rsp As DingTalk.Api.Response.OapiV2DepartmentListsubResponse = client.Execute(req, access_token)
For i As Integer = 0 To rsp.result.count -1
Dim s As String = rsp.result.Item(I).DeptId
Dim dt As DataRow = DataTables("表A").Find("id = '" & s & "'")
If dt Is Nothing Then
Dim dr As DataRow= DataTables("表A").AddNew()
dr("id") = rsp.result.Item(I).DeptId
dr("name") = rsp.result.Item(I).name
dr("parentid") = rsp.result.Item(I).parentid
dr.Save
Else
dt("name") = rsp.result.Item(I).name
dt("parentid") = rsp.result.Item(I).parentid
dt.Save
End If
Next