admin 管理员组文章数量: 888297
【浙政钉】第四篇:浙政钉创建群聊、消息接入、发送
背景
浙政钉上架应用可创建群聊,和用户单聊等。
版权
本文允许转载,转载请写上原文地址,谢谢!作者:曹震
目录
一、准备工作
二、浙政钉系列
三、接口开发
1.特别说明
1.1访问IP不在白名单中,request ip=xxx.119.xxx.169
2.接口说明
1.1创建群会话
1.2代码实例
1.3返回参数
2.1发送消息(单聊)
2.2代码实例
2.3返回结果
一、准备工作
【浙政钉】第一篇:企业内应用免登_郭老师的小迷弟雅思莫了的博客-CSDN博客_浙政钉是专有钉钉吗
二、浙政钉系列
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"}
我们来看下客户端返回的结果情况
好了,基本以上就是浙政钉、专有钉钉,消息接入等。
作者:曹震 如果喜欢我的博客,麻烦支持下我,一键三连哈~感谢
本文标签: 浙政钉第四篇浙政钉创建群聊消息接入发送
版权声明:本文标题:【浙政钉】第四篇:浙政钉创建群聊、消息接入、发送 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1688274516h200220.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论