开发者社区 问答 正文

钉钉机器人卡片互动回调使用stream模式无法监听到

https://open.dingtalk.com/document/resourcedownload/Introduction-to-stream-mode
按照上面文档的例子,点击卡片上的按钮,无法监听到回调操作。

.registerCallbackListener("/v1.0/im/bot/messages/get", robotMsgCallbackConsumer)

监听/v1.0/im/bot/messages/get正常
.registerCallbackListener("/v1.0/card/instances/callback", yourListener)
监听/v1.0/card/instances/callback不正常
求回复

展开
收起
1031787435645872 2023-09-06 15:22:12 798 分享 版权
3 条回答
写回答
取消 提交回答
  • 绝对是钉钉的BUG,希望尽快修复

    解决了,注册的监听器没有问题,问题出在发送卡片的方式

    使用机器人直接发送的卡片无法回调:https://open.dingtalk.com/document/orgapp/send-interactive-dynamic-cards-1

    使用卡片创建、投放接口投放的卡片可以回调,需要设置模式为setCallbackType("STREAM"); https://open.dingtalk.com/document/orgapp/delivery-card-interface

    2023-09-26 17:16:12
    赞同 1 展开评论
  • 遇到了相同的问题,盼官方答复。

    2023-09-12 14:25:33
    赞同 2 展开评论
  • 根据您的描述,钉钉机器人在使用 stream 模式下无法监听到卡片互动回调。

    路径设置问题:请确保您正确设置了回调监听的路径。在示例中,您应该将 "/v1.0/card/instances/callback" 设置为回调监听的路径。

    image.png

    Stream模式原理
    在 Stream 模式下,开发者的应用程序通过集成 SDK 的方式与钉钉开放平台建立一条 WebSocket 连接,建立连接过程中开放平台将对连接进行鉴权。当有卡片回调发生时,开放平台将通过 WebSocket 连接将数据通知到开发者的应用程序。开发者的应用程序可以接收到这些数据并进行相应处理,从而实现与钉钉开放平台的实时通信,参考下图所示

    448003014467156885ae5aea79916a5f_p645637.png

    2023-09-07 08:36:38
    赞同 展开评论