交互回传说明
卡片回传交互作用于消息卡片的交互组件。当终端用户点击消息卡片上的回传交互组件后,你在开发者后台应用内注册的回调请求地址将会收到 卡片回传交互 回调。该回调包含了用户与卡片之间的交互信息。
你的业务服务器接收到回调请求后,需要在 3 秒内响应回调请求,声明通过弹出 Toast 提示、更新卡片、保持原内容不变等方式响应用户交互。卡片交互回传一般包含以下步骤过程:
1、配置回调地址,订阅回调事件
详细的操作步骤,参考接收并处理回调
2、发送卡片消息
构造消息卡片并发送消息,发送消息接口可参考发送消息
构造消息卡片时,使用交互型组件,需要必传组件key字段,用于做回传标识
3、接收回调并解析数据
卡片回调和服务端响应回调的结构体参考下文。
回调消息体
根据交互组件的功能差异,不同交互组件的回调消息体存在差异,示例如下:
按钮类组件(单按钮、双按钮、三按钮、下拉操作按钮)
json
{
"callback_name": "xz_card",
"app_id": "AK*******",
"data": {
"company_id": "11111",
"app_ctx_id": "11111",
"content": {
"action": "key2" // 点击的交互组价action key
}
}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
输入框
json
{
"callback_name": "xz_card",
"app_id": "AK*******",
"data": {
"company_id": "11111",
"app_ctx_id": "11111",
"content": {
"action": "key2", // 点击的交互组价action key
"key2": "input", // key值与action值一致,value为输入框内的文本
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
列表选择器
json
{
"callback_name": "xz_card",
"app_id": "AK*******",
"data": {
"company_id": "11111",
"app_ctx_id": "11111",
"content": {
"action": "key2", // 点击的交互组价action key
"key2": "option", // key值与action值一致,value为列表选择器选中项value值
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
日期选择器
json
{
"callback_name": "xz_card",
"app_id": "AK*******",
"data": {
"company_id": "11111",
"app_ctx_id": "11111",
"content": {
"action": "key2", // 点击的交互组价action key
"key2": "1733760000000", // key值与action值一致,value为日期选择器的日期时间戳,单位:微秒
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
4、更新消息卡片
应用根据回调消息,处理更新消息卡片,可有2种更新方式:
- 通过回调接口直接响应更新
- 通过调用更新消息接口更新
回调接口直接响应更新
当通过卡片通过回调地址发送信息给业务方后,业务方可以立即响应该请求,返回要更新的卡片内容。具体格式如下:
请注意:仅 独享卡片支持按此方式更新卡片。什么是独享卡片
json
{
"code": 0,
"msg": "successs",
"data": { // data为更新后的卡片消息内容,如果无需更新则无需响应该object
"type": "card",
"content": {
"card": {
// 消息卡片json,支持全卡片内容更新
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
更新消息接口更新
更新消息接口可参考更新消息