Skip to content

交互回传说明

卡片回传交互作用于消息卡片的交互组件。当终端用户点击消息卡片上的回传交互组件后,你在开发者后台应用内注册的回调请求地址将会收到 卡片回传交互 回调。该回调包含了用户与卡片之间的交互信息。

你的业务服务器接收到回调请求后,需要在 3 秒内响应回调请求,声明通过弹出 Toast 提示、更新卡片、保持原内容不变等方式响应用户交互。卡片交互回传一般包含以下步骤过程:

1、配置回调地址,订阅回调事件

登录开发者后台:域名+/woa-open/admin/app,选择目标应用,进入【发送消息-api发送-卡片回调地址】设置回调地址

2、发送卡片消息

构造消息卡片并发送消息,发送消息接口可参考发送消息

构造消息卡片时,使用交互型组件,需要必传组件key字段,用于做回传标识

3、接收回调并解析数据

卡片回调和服务端响应回调的结构体参考下文。

回调消息体

根据交互组件的功能差异,不同交互组件的回调消息体存在差异,示例如下:

按钮类组件(单按钮、双按钮、三按钮、下拉操作按钮)

json
{
  "callback_name": "xz_card",
  "app_id": "AK*******",
  "data": {
    "company_id": "11111",
    "app_ctx_id": "11111",
    "content": {
      "action": "key2" // 点击的交互组价action key
    }
  }
}

输入框

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为输入框内的文本
    }
  }
}

列表选择器

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值
    }
  }
}

日期选择器

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为日期选择器的日期时间戳,单位:微秒
    }
  }
}

4、更新消息卡片

应用根据回调消息,处理更新消息卡片,可有2种更新方式:

  • 通过回调接口直接响应更新
  • 通过调用更新消息接口更新

回调接口直接响应更新

当通过卡片通过回调地址发送信息给业务方后,业务方可以立即响应该请求,返回要更新的卡片内容。具体格式如下:

请注意:仅 独享卡片支持按此方式更新卡片什么是独享卡片

json
{
  "code": 0,
  "msg": "successs",
  "data": {
    // data为更新后的卡片消息内容,如果无需更新则无需响应该object
    "type": "card",
    "content": {
      "card": {
        // 消息卡片json,支持全卡片内容更新
      }
    }
  }
}

更新消息接口更新

更新消息接口可参考更新消息