浙政钉DING消息对接文档

浙政钉DING消息对接文档浙政钉 DING 消息对接文档 专有钉钉平台 https openplatform portal dg work cn backendManag docs apiType serverapi amp docKey 1 开发浙政钉应用步骤 开发单位申请专有钉钉账户 前后端工程运行在自建服务器

大家好,我是讯享网,很高兴认识大家。

浙政钉DING消息对接文档

专有钉钉平台:https://openplatform-portal.dg-work.cn/backendManage/#/docs?apiType=serverapi&docKey=

1.开发浙政钉应用步骤

​ 开发单位申请专有钉钉账户,前后端工程运行在自建服务器。 登录专有钉钉管理后台,创建一条应用app, 将登录连接配置到改配置列表中。 App Key App Secret
在这里插入图片描述
讯享网

1.1 这一点很重要 需先订阅开通ding消息服务的访问权限,不会会报错

OPF-B001-05-16-0002----------------》需先订阅开通服务的访问权限
在这里插入图片描述

1.2 将测试的人员加入浙政钉
在这里插入图片描述

1.3 查看用户详情有uid就是浙政钉accoundId
在这里插入图片描述

2.DING API开放接口V2

接口说明

DING API开放接口V2版本。

接口限制规则:

  • 同一个应用相同消息的内容同一个用户一天只能接收一次。
  • 同一个应用给同一个用户发送消息,ISV应用开发方式一天不得超过100次。

通知类型为电话语音钉的限制规则

电话DING使用的阿里云的语音服务,ISV发DING也收到阿里云语音服务的流控管控,阿里云语音服务的流控规则&效果如下:

  • 流控规则:针对同一个被叫号码。流控规则:1次/分钟、5次/小时、20次/天(24小时)。
  • 流控效果:命中流控规则时,再对该被叫号码发送电话DING(无论通过DING接口还是通过客户端发送),实际不播出电话,只能收到应用内DING。

调试

在API Explorer中调试该接口。

基本信息

中文名:DING API开放接口V2

接口名:/ding/isv/send.json

所在目录:DING

调用方式:POST(HTTPS)

发布版本:V2.7.0

请求参数

名称 子对象 类型 是否必填 示例值 描述
tenantId String 租户ID
creator Obj “creator”:{“accountId”:,dingId"accountOrgId":“”, “accountOrgName”:“”} 发送者
accountId Long 账号ID
accountName String 账号名称
accountOrgId String 组织ID
accountOrgName String 组织名称
receivers List [{ “accountId”:, “accountName”:“冯世明”, “accountOrgId”:“pre.saas.zwdingding”}] 接收者集合,最多1000个。
accountId Long 账号ID
accountName String 账号名称
accountOrgId String 组织ID
accountOrgName String 组织名称
source Obj 无需发送到im会话:“source”:{“extJson”:“{“msgId”:”“}”, “sourceId”:“”,“sourceName”:“周丽英”}需要发送到im会话:“source”:{“extJson”:“{“msgId”:”“}”, “sourceId”:“:”,“sourceName”:“xxx办公室”} 来源信息。具体见各字段描述。
sourceId “sourceId”:“"或者"sourceId”:“:” 创建DING的源。sourceId分情况: 无需发送IM会话时:sourceId与creator的accountId保持一致。需要发送IM会话时:sourceId需要按照发送方接收方两个uid,小:大的顺序填写。 (小uid:大uid,英文冒号拼接,大小由uid数值大小判断,小的在前大的在后)如:“sourceId”:":"注意:发送到IM只支持发送单人,不能群发。
sourceName xxx办公室 源的名称,如会话名
extJson “extJson”:“{“msgId”:”“}” 扩展字段,msgId默认为空,无需填写
body String “body”:“{“text”:”(当前版本过低,升级版本后可查看DING详情)“}” 内容json字符串,必须带text这个key
bodyType String text 内容类型,目前发钉接口只支持文本类型text:文本
textType String plaintext 内容加密类型plaintext:明文
dingBody String “dingBody”:“{“text”:“通知一下,晚上加班”}” 消息体json字符串
dingBodyContentType String attachment 消息体内容类型,文本默认填写:attachment
dingBodyTextType String plaintext 消息体加密类型plaintext:明文;ciphertext:密文(暂不对ISV开放)
notifyType String app 通知类型 app:应用内;sms:短信;vms:语音(电话语音钉限制规则见接口说明)
sendToIm Boolean false 是否发送到IM会话,默认false为true时scene填写固定值:session注意:发送到IM只支持发送单人,不能群发。
scene String session sendToIm为true,scene填写固定值:session

返回参数

名称 类型 描述
success Boolean 请求是否成功。true:请求成功;false:请求失败
content Object
└ data String 发钉ID,可根据此信息,来查询/ding/query/userDetail以获取已未读/发送成功失败的接收者信息
└ success Boolean 业务处理是否成功

用法DEMO

调用示例

 / *@Description: ding消息 *@Parameter: [creator 发送浙, receivers 接收者, dingBody 发送消息] *@Return: java.lang.String *@Author: jxj *@Date: 2022/7/22 / public String sendNotice(String creator ,String receivers, String dingBody){ 
    ExecutableClient executableClient = ExecutableClient.getInstance(); executableClient.setAccessKey("xxxxxxxxxxxxxxxxxxx"); executableClient.setSecretKey("xxxxxxxxxxxxxxxxxxx"); executableClient.setDomainName("openplatform.dg-work.cn"); executableClient.setProtocal("https"); //executableClient要单例,并且使用前要初始化,只需要初始化一次 executableClient.init(); //浙政钉发送ding消息接口 String api = "/ding/isv/send.json"; PostClient postClient = executableClient.newPostClient(api); postClient.addParameter("bodyType", "text"); postClient.addParameter("creator", creator); postClient.addParameter("dingBodyTextType", "plaintext"); postClient.addParameter("dingBody", dingBody); postClient.addParameter("textType", "plaintext"); postClient.addParameter("source", "{\"extJson\":{\"msgId\":\"\"}, \"sourceId\":\" \",\"sourceName\":\"张硕\"}"); postClient.addParameter("body", "{'text':'当前版本过低,升级版本后可查看DING详情'}"); postClient.addParameter("scene", ""); postClient.addParameter("notifyType", "app"); postClient.addParameter("receivers", receivers); postClient.addParameter("tenantId", "53236"); postClient.addParameter("dingBodyContentType", "text"); postClient.addParameter("sendToIm", ""); postClient.addParameter("accountId", ""); postClient.addParameter("accountName", ""); postClient.addParameter("accountOrgName", ""); postClient.addParameter("accountOrgId", ""); postClient.addParameter("sourceId", ""); postClient.addParameter("extJson", ""); postClient.addParameter("sourceName", ""); postClient.addParameter("accountId", ""); postClient.addParameter("accountName", ""); postClient.addParameter("accountOrgName", ""); postClient.addParameter("accountOrgId", ""); String apiResult = postClient.post(); System.out.println(apiResult); executableClient.destroy(); return "ok"; } 

讯享网

请求包结构体

讯享网{ 
    "body":"{\"text\":\"(当前版本过低,升级版本后可查看DING详情)\"}", "bodyType":"text", "creator":{ 
    "accountId":, "accountName":"周丽英", "accountOrgId":"GE_64e388fd7de8d885e895d5e", "accountOrgName":"杭州市公安局-AAA哈哈哈" }, "dingBody":"{\"text\":\"通知一下,晚上加班\"}", "dingBodyContentType":"text", "dingBodyTextType":"plaintext", "notifyType":"app", "receivers":[ { 
    "accountId":, "accountName":"冯世明", "accountOrgId":"pre.saas.zwdingding" } ], "sendToIm":false, "source":{ 
    "extJson":"{\"msgId\":\"\"}", "sourceId":"", "sourceName":"周丽英" }, "tenantId":"", "textType":"plaintext", "urge":false } 

返回结果

成功返回示例

{ 
   "success":true,"content":{ 
   "data":"","success":true}} 

失败返回示例

讯享网失败返回案例 

补充说明

错误码 错误描述 说明
0 OK 成功
GDG-B001-05-15-0001 ILLEGAL_ARGUMENT 参数错误
GDG-S001-05-99-0001 SYSTEM_ERROR 未知系统异常
GDG-B001-05-16-0003 MOZI_ACL_CHECK_ERROR 接收人可见性过滤异常

总结:

1.测试账号必须在通讯录里

2.必须给应用加ding消息权限

1-05-15-0001 | ILLEGAL_ARGUMENT | 参数错误 |
| GDG-S001-05-99-0001 | SYSTEM_ERROR | 未知系统异常 |
| GDG-B001-05-16-0003 | MOZI_ACL_CHECK_ERROR | 接收人可见性过滤异常 |

总结:

1.测试账号必须在通讯录里

2.必须给应用加ding消息权限

3.传参务必转jsonString 字符串

小讯
上一篇 2025-02-26 13:18
下一篇 2025-01-17 17:22

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/22268.html