钉钉机器人实现卡片互动

目录

一、实现效果(需求)

二、代码实现


一、实现效果(需求)

本项目需求为@机器人后机器人自动回应,并且根据我的选项再次请求服务器,本次需求为文字版,其中返回内容为button,返回图片也试了,原理一样。

二、代码实现

1.创建钉钉可交互卡片模板

内容如下图,记得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.启用群模板

两种形式

1)已经存在的群,启动群模板

2)根据群模板ID创建场景群

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值