明确需求
在正式开发之前,你可以提前了解,本文档将帮助你使用群模板机器人通过发送群助手消息接口发送群聊消息。为了帮助你快速上手,你可以尝试运行“快速体验”提供的示例 demo。这将帮助你对群模板机器人的使用有一个直观的体验。前提条件
- 完成创建群模板机器人流程。
-
完成 OpenAPI 接口的调用权限申请,需申请
钉钉群消息管理权限。 -
开发环境准备:
- Java:已安装 JDK 1.8 及以上
- Java:已安装 Maven 3
快速体验
- 你可以下载 group-template-robot-group-message-quick-start 示例 demo。
-
替换 groupTemplateRobotGroupMessage 的 main 方法参数:
配置项 说明 GROUP_TEMPLATE_ID 登录开发者后台,单击开放能力 > 场景群 > **群模板,**复制 ID。 image.png ROBOT_CODE 登录开发者后台,单击开放能力 > 场景群 > 群模板 > 目标群模板。复制机器人 ID。 image.png 如果群模板没有关联机器人,参考关联群模板机器人到群模板。 OWNER_USER_ID 用户的 userId 信息,详情参考用户 UserId。 CLIENT_ID 应用的 Client ID,详情参考Client ID。 CLIENT_SECRET 应用的 Client Secret,详情参考Client Secret。 - 启动 main 方法,就可以在群内收到机器人发送的消息了。
操作步骤
-
添加依赖项到工程的
pom.xml文件。<dependencies> <dependency> <groupId>com.aliyun</groupId> <artifactId>alibaba-dingtalk-service-sdk</artifactId> <version>2.0.0</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>dingtalk</artifactId> <version>2.0.76</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.68</version> </dependency> </dependencies> -
创建 main 方法,并启动。
此时,将自动创建一个群聊会话,并且你可以在群内看到群模板机器人发送的消息了。
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.aliyun.dingtalkoauth2_1_0.Client; import com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenRequest; import com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenResponse; import com.aliyun.teaopenapi.models.Config; import com.dingtalk.api.DefaultDingTalkClient; import com.dingtalk.api.DingTalkClient; import com.dingtalk.api.request.OapiImChatScencegroupMessageSendV2Request; import com.dingtalk.api.request.OapiImChatScenegroupCreateRequest; import com.dingtalk.api.response.OapiImChatScencegroupMessageSendV2Response; import com.dingtalk.api.response.OapiImChatScenegroupCreateResponse; import com.taobao.api.ApiException; public class groupTemplateRobotGroupMessage { //群模板 id public static final String GROUP_TEMPLATE_ID = "<your group template id >"; //群模板机器人 id public static final String ROBOT_CODE = "<your group robot id>"; //群主userId public static final String OWNER_USER_ID= "<owner userId>"; //应用 client id public static final String CLIENT_ID= "<your app client id>"; //应用 client secret public static final String CLIENT_SECRET= "< your app client secret>"; /** * 发送群模板机器人消息 * @param args */ public static void main(String[] args) { DingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/im/chat/scencegroup/message/send_v2"); OapiImChatScencegroupMessageSendV2Request req = new OapiImChatScencegroupMessageSendV2Request(); req.setTargetOpenConversationId(CreateGroup()); req.setMsgTemplateId("inner_app_template_markdown"); JSONObject jsonObject = new JSONObject().fluentPut("title","测试").fluentPut("markdown_content", "# 测试内容 \n > 测试"); req.setMsgParamMap(JSON.toJSONString(jsonObject)); req.setRobotCode(ROBOT_CODE); OapiImChatScencegroupMessageSendV2Response rsp = null; try { rsp = client.execute(req, accessToken()); System.out.println(rsp.getBody()); } catch (ApiException e) { throw new RuntimeException(e); } } /** * 获取群 OpenConversationId * @return */ public static String CreateGroup() { DingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/im/chat/scenegroup/create"); OapiImChatScenegroupCreateRequest req = new OapiImChatScenegroupCreateRequest(); req.setTitle("群模板机器人测试群"); req.setTemplateId(GROUP_TEMPLATE_ID); req.setOwnerUserId(OWNER_USER_ID); OapiImChatScenegroupCreateResponse rsp = null; try { rsp = client.execute(req, accessToken()); return rsp.getResult().getOpenConversationId(); } catch (ApiException e) { throw new RuntimeException(e); } } public static String accessToken(){ GetAccessTokenRequest getAccessTokenRequest = new GetAccessTokenRequest(); getAccessTokenRequest.setAppKey(CLIENT_ID); getAccessTokenRequest.setAppSecret(CLIENT_SECRET); Config config = new Config(); config.protocol = "https"; config.regionId = "central"; try { Client client = new Client(config); GetAccessTokenResponse accessToken = client.getAccessToken(getAccessTokenRequest); return accessToken.getBody().getAccessToken(); } catch (Exception e) { throw new RuntimeException(e); } } }
相关文档
- 发送群助手消息