目录
一、实现效果(需求)
本项目需求为@机器人后机器人自动回应,并且根据我的选项再次请求服务器,本次需求为文字版,其中返回内容为button,返回图片也试了,原理一样。
二、代码实现
内容如下图,记得button可设置回传参数,选择按钮点击事件类型为回传请求,可动态设置返回值。
2.重点是发送卡片方法
/**
* 发送动态卡片
*
* @param openConversationId
* @param cardParamMap
* @return
* @throws Exception
*/
public String sendCardMsg(String openConversationId, Map<String, String> cardParamMap) throws Exception {
Client client = createClient();
String accessToken = AccessTokenUtil.getAppAccessToken();
String randomString = RandomUtil.getRandomString(10);
SendInteractiveCardHeaders sendInteractiveCardHeaders = new SendInteractiveCardHeaders();
sendInteractiveCardHeaders.xAcsDingtalkAccessToken = accessToken;
SendInteractiveCardRequest.SendInteractiveCardRequestCardData cardData = new SendInteractiveCardRequest.SendInteractiveCardRequestCardData()
.setCardParamMap(cardParamMap);
SendInteractiveCardRequest request = new SendInteractiveCardRequest()
.setCardTemplateId(TemplateConfig.getCardTemplateId())
.setOpenConversationId(openConversationId)
.setOutTrackId(randomString)
.setRobotCode(TemplateConfig.getBotTemplateId())
.setConversationType(1)
.setCardData(cardData);
SendInteractiveCardResponse rsp = client.sendInteractiveCardWithOptions(request, sendInteractiveCardHeaders, new RuntimeOptions());
log.info("\nsendCardMsg rsp: {} ", JSON.toJSONString(rsp));
if (rsp.body.success) {
return randomString;
}
return null;
}
3. 注册卡片回调地址
4.启用群模板
两种形式