【浙政钉】第四篇:浙政钉创建群聊、消息接入、发送
背景
浙政钉上架应用可创建群聊,和用户单聊等。
版权
本文允许转载,转载请写上原文地址,谢谢!作者:曹震
目录
一、准备工作
二、浙政钉系列
三、接口开发
1.特别说明
1.1访问IP不在白名单中,request ip=xxx.119.xxx.169
2.接口说明
1.1创建群会话
1.2代码实例
1.3返回参数
2.1发送消息(单聊)
2.2代码实例
2.3返回结果
一、准备工作
【浙政钉】第一篇:企业内应用免登_郭老师的小迷弟雅思莫了的博客-CSDN博客_浙政钉是专有钉钉吗https://caozhen.blog.csdn.net/article/details/126529774
二、浙政钉系列
1.【浙政钉】第一篇:企业内应用免登
2.【浙政钉】第二篇:获取浙政钉单位组织结构
3.【浙政钉】第三篇:浙政钉应用发送工作通知
三、接口开发
1.特别说明
1.1访问IP不在白名单中,request ip=xxx.119.xxx.169
解决办法:钉钉专有版开放平台开发者后台 (dg-work.cn)
找到自己新建的应用,在应用配置中设置服务器出口ip
2.接口说明
1.1创建群会话
接口文档:专有钉钉开放平台管理后台 (dg-work.cn)
请求参数
名称 |
类型 |
是否必填 |
示例值 |
描述 |
accountId |
Long |
是 |
账户id |
|
disableRead |
Integer |
否 |
已读回执设置,0打开,1关闭,默认打开 |
|
tenantId |
Long |
是 |
租户id |
|
useridlist |
String[] |
是 |
群成员accountId列表,每次最多支持40人,群人数上限为999。如创建超过40人的群,建完群后再调用更新群会话接口增加人员。 |
|
name |
String |
是 |
群名称 |
|
managementType |
Integer |
否 |
默认所有人可管理 0关闭:所有人可管理群 1打开:仅管理员及子管理员可管理 |
返回参数
名称 |
类型 |
描述 |
memberLimit |
long |
群人数限制 |
responseMessage |
String |
错误信息 |
responseCode |
String |
错误码 |
memberCount |
Integer |
当前群人数 |
chatId |
String |
会话id |
success |
bool |
业务处理是否成功 |
1.2代码实例
mport com.alibaba.fastjson.JSONObject;
import com.alibaba.xxpt.gateway.shared.api.request.OapiChatGroupV2CreateRequest;
import com.alibaba.xxpt.gateway.shared.api.request.OapiChatSendMsgRequest;
import com.alibaba.xxpt.gateway.shared.api.request.OapiMoziOrganizationListOrganizationsByCodesRequest;
import com.alibaba.xxpt.gateway.shared.api.response.OapiChatGroupV2CreateResponse;
import com.alibaba.xxpt.gateway.shared.api.response.OapiChatSendMsgResponse;
import com.alibaba.xxpt.gateway.shared.api.response.OapiMoziOrganizationListOrganizationsByCodesResponse;
import com.alibaba.xxpt.gateway.shared.client.http.ExecutableClient;
import com.alibaba.xxpt.gateway.shared.client.http.IntelligentGetClient;
import com.alibaba.xxpt.gateway.shared.client.http.IntelligentPostClient;
import com.alibaba.xxpt.gateway.shared.client.http.PostClient;
import com.google.gson.JsonObject;
import jdk.nashorn.internal.ir.annotations.Reference;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.List;@Slf4j
@RestController
@RequestMapping("/hvit/DingTalkApi/")
public class Controller {private static ExecutableClient executableClient;static {executableClient = ExecutableClient.getInstance();//DomainName不同环境对应不同域名,示例为sass域名executableClient.setAccessKey("xxxxxxxxxxxxxxx");executableClient.setSecretKey("xxxxxxxxxxx3D8TSpd255VSZh7sKRPZ0f");executableClient.setDomainName("openplatform.dg-work.cn");executableClient.setProtocal("https");executableClient.init();//executableClient要单例,并且使用前要初始化,只需要初始化一次}/**** 创建群会话(建群)* @return*/@RequestMapping(value = "/createChat", method = RequestMethod.POST)public ResponseEntity<?> createChat() {//executableClient保证单例IntelligentGetClient intelligentGetClient = executableClient.newIntelligentGetClient("/chat/group/V2/create");OapiChatGroupV2CreateRequest oapiChatGroupV2CreateRequest = new OapiChatGroupV2CreateRequest();//账户idoapiChatGroupV2CreateRequest.setAccountId(834843L);//已读回执设置,0打开,1关闭,默认打开oapiChatGroupV2CreateRequest.setDisableRead(1);//租户idoapiChatGroupV2CreateRequest.setTenantId(xx25L);//群成员accountId列表oapiChatGroupV2CreateRequest.setUseridlist(Arrays.asList("407483", "834750", "834751", "834749"));//群名称oapiChatGroupV2CreateRequest.setName("数字门牌代码测试建群");//默认所有人可管理 0关闭:所有人可管理群 1打开:仅管理员及子管理员可管理oapiChatGroupV2CreateRequest.setManagementType(1);//获取结果OapiChatGroupV2CreateResponse apiResult = intelligentGetClient.get(oapiChatGroupV2CreateRequest);if (apiResult != null) {if (apiResult.getContent().getSuccess()) {log.info("创建群聊:{}", apiResult.getContent().getData());return ResponseEntity.ok(apiResult.getContent().getData());}}return ResponseEntity.ok("");}}
1.3返回参数
{"chatId":"109096075xxxxxx141@saas.zwdingding","memberCount":5,"memberLimit":999}
这个是chatId是群的id,这个可以记录下来,后面进行群聊的时候需要用到。
我们来看下客户端返回的结果情况
2.1发送消息(单聊)
接口文档:专有钉钉开放平台管理后台 (dg-work.cn)
请求参数
名称 |
类型 |
是否必填 |
示例值 |
描述 |
msg |
String |
是 |
消息体(参考下文示例消息格式) |
|
senderId |
String |
是 |
发送者用户id |
|
receiverId |
String |
否 |
单聊接受者用户id(chatType为1时必填) |
|
chatId |
String |
否 |
群聊会话id(chatType为2时必填) |
|
tenantId |
Long |
是 |
租户id |
|
chatType |
Integer |
是 |
发起的会话类型(1单聊、2群聊) |
返回参数
名称 |
类型 |
描述 |
success |
Boolean |
请求是否成功。true:请求成功;false:请求失败 |
content |
Object |
|
└ data |
List |
消息列表 |
└ └ messageId |
String |
消息id |
└ success |
Boolean |
业务处理是否成功 |
└ responseMessage |
String |
错误信息 |
└ responseCode |
String |
错误码 |
2.2代码实例
@RequestMapping(value = "/createChatOnline", method = RequestMethod.POST)public ResponseEntity<?> createChatOnline() {//executableClient保证单例IntelligentGetClient intelligentGetClient = executableClient.newIntelligentGetClient("/chat/sendMsg");OapiChatSendMsgRequest oapiChatSendMsgRequest = new OapiChatSendMsgRequest();JSONObject jsonObject = new JSONObject();jsonObject.put("msgtype", "text");jsonObject.put("text", JSONObject.parse("{\"content\":\"今天是2022年9月26日,测试单聊\"}"));//消息体(参考下文示例消息格式)oapiChatSendMsgRequest.setMsg(jsonObject.toJSONString());//发送者用户idoapiChatSendMsgRequest.setSenderId("834222");//单聊接受者用户id(chatType为1时必填)oapiChatSendMsgRequest.setReceiverId("832222");//群聊会话id(chatType为2时必填)oapiChatSendMsgRequest.setChatId("");//租户idoapiChatSendMsgRequest.setTenantId(62xx5L);//发起的会话类型(1单聊、2群聊)oapiChatSendMsgRequest.setChatType(1);//获取结果OapiChatSendMsgResponse apiResult = intelligentGetClient.get(oapiChatSendMsgRequest);if (apiResult != null) {if (apiResult.getContent().getSuccess()) {log.info("创建单聊:{}", apiResult.getContent().getData());return ResponseEntity.ok(apiResult.getContent().getData());}}return ResponseEntity.ok("");}
2.3返回结果
{"messageId":"1090969593284921405"}
我们来看下客户端返回的结果情况
好了,基本以上就是浙政钉、专有钉钉,消息接入等。
作者:曹震 如果喜欢我的博客,麻烦支持下我,一键三连哈~感谢
【浙政钉】第四篇:浙政钉创建群聊、消息接入、发送相关推荐
- Java教程:如何对接自定义钉钉机器人并实现群聊消息发送
正文: 钉钉对机器人提供了多种使用场景,但目前我们只针对群聊消息的发送,@所有 或 @某某 以实现目的,此场景只需实现自定义机器人介入即可! 这是官方介绍: 点击此处直达 **自定义机器人支持5种消息 ...
- python request模块 在钉钉中创建群聊机器人,一键发送消息,定时发送(详细步骤)
0.安装requests模块 Linux下执行 pip3 install requests 1.request简介 Reqest是Python的HTTP库,内部采用urillib3模块,但是用起来比u ...
- SpringBoot第十四篇:在springboot中用redis实现消息队列
这篇文章主要讲述如何在springboot中用reids实现消息队列. 准备阶段 安装redis,可参考我的另一篇文章,5分钟带你入门Redis. java 1.8 maven 3.0 idea 环境 ...
- C# 代码实现钉钉创建群聊
本文属于个人原创作品.个人总结,谢绝转载.抄袭.如果您有疑问或者希望沟通交流,可以联系QQ:865562060. 一.开始接入 1.开始接入钉钉之前,首先需要了解企业接入钉钉的概述:https://o ...
- CCIE理论-第四篇-SDA-1
CCIE理论-第四篇-SDA-1 SDA-software defied Access SDA-软件定义接入 SDA是被包含在SDN范畴里面的一个架构体系 SDA核心-通过一系列的技术合租,组织到一个 ...
- 直播系统聊天技术(四):百度直播的海量用户实时消息系统架构演进实践
本文原题"百度直播消息服务架构实践",由百度APP消息中台团队原创分享于"百度Geek说"公众号,为了让文章内容更通俗易懂,本次已做排版优化和内容重新划分,原文 ...
- 记一次钉钉群聊机器人的开发
文章目录 一.需求描述 二.开发思路 三.开发步骤 (一)阅读开发文档 (二)创建机器人 (三)了解消息格式 (四)传参并调用 (五)其他 四.总结 一.需求描述 为实现更好的沟通,现需要实现以自定义 ...
- 钉钉老版本下载3.31_钉钉旧版pc下载-钉钉旧版pc客户端下载-西西软件下载
钉钉旧版pc版客户端是为了大家需要准备的,不习惯使用新版本的新版本的小伙伴们,想要使用旧版本的,小编就给大家提供旧版本的软件,让小伙伴们可以放心的进行使用,还等什么,赶紧试试吧. 软件介绍: 钉钉,是 ...
- 钉钉老版本下载3.31_钉钉3.3.1老版本官方下载-钉钉3.3.1旧版本PC版官方版-东坡下载...
钉钉是由阿里巴巴研发的一款办公聊天工具,是新一代的团队沟通模式,该软件内置强大的办公功能,主要功能有传输文件,发送文字.语音.图片等,消息阅读以及外出打卡等功能,在这里为大家提供的是钉钉3.3.1旧版 ...
最新文章
- Mac系统Git生成ssh公钥
- 遗传和基因突变对神经网络训练的好处
- JavaScript强化教程——AJAX
- Codeforces 1109F. Sasha and Algorithm of Silence's Sounds
- eclipse中检查项目生成.class文件的地址
- 利用MS17-010渗透win7(32位)
- Windows Mobile下猜数字游戏的TDD实现
- CPU vs. GPU
- 114.maven+springmvc+spring+mybaties 项目整合
- C# 文件读写系列三
- 免费易用的Web版OFD阅读器
- 美团旅行销售绩效系统研发实践
- 2022年物理学诺奖获主,他们证明爱因斯坦错了
- LiveQing私有云流媒体-云端录像时间轴视频及列表视图
- ModelCoder模块系列:PID模块介绍
- PHPwind9.01傻瓜图解安装教程
- 暗影精灵5风扇怎么调_惠普HP暗影精灵5 Super游戏主机改装猫头鹰风扇攻略
- 高德地图API画圆形、高的地图删除圆形打点
- 蓝字冲销是什么意思_在记账凭证中冲销是什么意思
- 电脑使用android手机摄像头,电脑怎么使用安卓手机摄像头 电脑使用手机摄像头的方法-电脑教程...
热门文章
- 操作系统4小时速成:内存管理,程序执行过程,扩充内存,连续分配,非连续分配,虚拟内存,页面替换算法
- 用MFC编程时在源文件里经常看到的AFX或afx是什么意思?
- Java基础-Lambda表达式基础练习
- 全排列的java算法_全排列算法原理和实现
- 7.4. Combining Queries
- 信号与系统 chapter7 因果与非因果
- grabber的使用_Google Grabber —使用PHP找出您的域名在Google中列出了多少页
- jQuery诞生记-原理与机制
- 利用矩阵相乘公式Cij = ∑ a ik × b kj,编程计算m×n阶矩阵A和n×m阶矩阵B之积
- 台式计算机无线网经常掉线,电脑无线网老是掉线怎么办?教你解决掉线问题