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://oapi.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://oapi.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);
}
}
}