钉钉互动卡片回调按钮无响应问题解决

项目场景:

钉钉互动卡片,通过回调按钮触发业务接口逻辑


问题描述

正式环境下,钉钉互动卡片回调按钮点击无任何响应


原因分析:

查看正式环境日志:

正式环境系统日志未发现回调请求相关日志输出

业务接口连通性:

通过postman测试业务接口连通性无异常


钉钉小程序按钮点击抓包:

通过Fiddler抓取小程序按钮点击的接口信息,未抓取到接口请求


再看相关钉钉互动卡片注册代码:

RegisterCallbackHeaders registerCallbackHeaders = new RegisterCallbackHeaders();
registerCallbackHeaders.xAcsDingtalkAccessToken = accessToken;
RegisterCallbackRequest callbackRequest = new RegisterCallbackRequest();

try {
   callbackRequest.setCallbackRouteKey(callbackRouteKey);
   callbackRequest.setCallbackUrl(callbackUrl);
   callbackRequest.setApiSecret(DingTalkConfigKit.getDingTalkConfig().getToken());
   callbackRequest.setForceUpdate(true);
   log.info("注册卡片回调地址请求{}", TeaModel.toMap(callbackRequest));
   RegisterCallbackResponse registerCallbackResponse = client.registerCallbackWithOptions(callbackRequest, registerCallbackHeaders, new RuntimeOptions());
   log.info("注册卡片回调地址结果{}", TeaModel.toMap(registerCallbackResponse));
} catch (Exception e) {
   log.error("注册卡片回调地址失败,原因", e);
}

发现问题,callbackRequest.setCallbackRouteKey(callbackRouteKey)方法传入的callbackRouteKey再不同的环境下Key值一致,导致正式环境和测试环境交替注册回调地址的时候发生覆盖,正式环境的回调请求到了测试环境上

查看测试环境系统日志:

测试环境系统日志确实存在回调请求相关日志输出,问题确认

解决方案:

修改正式环境和测试环境的callbackRouteKey为不同的值,重新启动两套环境,进行交替注册回调地址,均能正常触发回调按钮,至此问题已解决

### 钉钉机器人使用卡片消息与Markdown格式的方法 在钉钉机器人的开发过程中,可以利用其支持的消息类型来发送不同样式的信息给接收者。对于希望以更结构化的方式呈现信息的情况,可以选择使用带有Markdown格式的卡片消息。 #### 卡片消息概述 钉钉提供了多种类型的卡片消息用于满足不同的业务场景需求。这些卡片消息不仅限于简单的文本显示,还可以包含图片、链接以及按钮等交互元素[^1]。 #### 创建Markdown格式的卡片消息 为了创建一个基于Markdown语法的卡片消息,在构建请求体时需要指定`msgtype`为`markdown`,并且提供相应的标题(`title`)和正文内容(`text`)。下面给出了一段Python代码片段作为例子: ```python import requests def send_markdown_card(ding_url, headers, title, text): post_data = { "msgtype": "markdown", "markdown": { "title": title, "text": text, }, } response = requests.post( ding_url, headers=headers, json=post_data, verify=True ) return response ``` 此函数接受四个参数:`ding_url`(Webhook URL),`headers`(HTTP头信息), `title`(卡片标题) 和 `text`(Markdown格式的内容字符串)[^3]。 #### 示例应用 假设要向团队成员通报项目进度更新,则可以通过上述方法构造如下形式的通知: ```plaintext ## 项目进展报告 - **当前阶段**: 设计评审完成 - **预计上线日期**: 2024年第一季度末 - ![](https://example.com/image.png) > 更多详情请访问 [项目主页](http://project-homepage.example.com/) ``` 这段文字将会被解析成具有层次分明、易于阅读的形式,并且能够嵌入图像或超链接指向更多资源。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值