步骤 | 说明 |
---|---|
选择回调订阅方式 | 回调订阅方式分为 使用长连接接收回调 和 将回调发送至开发者服务器 两种,你可以根据需要自行选择任一订阅方式。 如果你已经集成飞书 SDK,且正在开发的是企业自建应用,推荐你使用更加安全高效的长连接订阅方式。 使用长连接接收回调 方式是飞书 SDK 内提供的能力,你可以通过集成飞书 SDK 与开放平台建立一条 WebSocket 全双工通道(你的服务器需要能够访问公网)。后续当应用订阅的回调发生时,开放平台会通过该通道向你的服务器发送消息。详细配置说明参见使用长连接接收回调。 将回调发 送至开发者服务器 方式是传统的 Webhook 模式,该方式需要你提供用于接收回调消息的服务器公网地址。后续当应用订阅的回调发生时,开放平台会向服务器的公网地址发送 HTTP POST 请求,请求内包含回调数据。详细配置说明参见将回调发送至开发者服务器。 |
添加所需回调 | 完成回调订阅方式配置后,即可为应用添加所需订阅的回调,并发布应用使配置生效。具体操作参见添加回调。 |
接收回调 | 根据不同的回调订阅方式接收回调: 使用长连接接收回调 方式已经封装了鉴权逻辑,无需进行数据解密与验签操作,直接接收来自开放平台的回调请求即可。 将回调发送至开发者服务器 方式需要你根据应用的加密策略进行安全校验,如果是加密回调,需要先解密回调,再解析回调详情。具体操作参见接收回调。 |
url.preview.get
)为例,回调的结构示意如下:{
"schema": "2.0", //表示回调的版本,2.0表示这个回调结构与事件的2.0版本在形式上一致
"header": { //回调的通用参数
"token": "vi57noNQoGbhxxxxxWmmWdlsSn3FTzk1", //对应 Verification Token
"create_time": "170134xxxxx18480", //回调发送的时间戳,近似于回调触发的时间
"event_type": "url.preview.get", //回调类型
"tenant_key": "736xxxxx260f175d", //回调所属应用的租户id
"app_id": "cli_a40xxxxxe57e100c" //回调所属应用的应用id
},
"event": { //记录不同回调类型返回的详细的上下文信息
"operator": {
"tenant_key": "736588cxxxx175d",
"user_id": "c3xxxxd1",
"open_id": "ou_xxxxx54182ea7b8319f4d39823b79d2"
},
"host": "im_message", //链接所在的宿主场景。枚举包括1.im_message 聊天消息 2.im_top_notice 群置顶
"context": { //这个场景下具体的上下文参数
"url": "https://feishu-url.bytedance.net/smartcard/test/111", //匹配URL规则的原链接
"preview_token": "e28r7df2-xxxx-477d-a8d0-2e1eb99796c2", //用于标识链接预览的凭证,在返回链接预览数据时要用
"open_message_id": "om_191d914xxxxx81c97a609c663452dfdf", //触发链接预览的消息ID
"open_chat_id": "oc_20443194b65f9c8cf2935818dae39999" //触发链接预览的群ID
}
}
}
功能模块 | 回调名称 | 描述 |
---|---|---|
卡片 | 卡片回传交互 | 用户点击卡片上配置回传交互的组件时,触发此回调。 可通过返回 toast、更新后的卡片内容等反馈用户的交互。 |
链接预览 | 拉取链接预览数据 | 用户在聊天中查看匹配应用注册的URL规则的链接时,触发此回调。 可通过返回文字链、卡片等链接预览内容,为裸链扩展链接预览效果。 |
卡片 | 消息卡片回传交互(旧) | 当用户点击卡片上添加了回传交互的组件时,开发者注册的服务端回调地址将收到此回调。 开发者可声明通过弹出 toast、更新卡片、保持原内容不变等方式来响应用户交互。 该回调使用旧版的协议,兼容历史的机器人回调配置。 |