目录
当用户与智能机器人发生交互的时候,交互事件将加密回调给机器人接受消息url,智能机器人服务通过接收并处理回调事件,实现更加丰富的自定义功能。
智能机器人回调事件通用协议示例:
{
"msgid": "CAIQ16HMjQYY\/NGagIOAgAMgq4KM0AI=",
"create_time":1700000000,
"aibotid": "AIBOTID",
"chatid":"CHATID",
"chattype":"single",
"from": {
"corpid": "wpxxxx",
"userid": "USERID"
},
"msgtype": "event",
"event": {
"eventtype": "eventtype_name",
"eventtype_name":{
}
}
}
参数说明:
| 参数 | 是否必填 | 说明 |
|---|---|---|
| msgid | 是 | 本次回调的唯一性标志,开发者需据此进行事件排重(可能因为网络等原因重复回调) |
| create_time | 是 | 本次回调事件产生的时间 |
| aibotid | 是 | 智能机器人id |
| chatid | 否 | 群聊id |
| chattype | 是 | 会话类型,single\group,分别表示:单聊\群聊 |
| from | 是 | 该事件触发者的信息,详见From结构体 |
| msgtype | 是 | 消息类型,若为事件通知,固定为event |
| event | 是 | 若为事件通知,事件结构体,参考Event结构体说明 |
From结构体说明:
| 参数 | 是否必填 | 说明 |
|---|---|---|
| corpid | 否 | 操作者的corpid,若为企业内部智能机器人不返回 |
| userid | 是 | 操作者的userid |
Event结构体说明:
| 参数 | 是否必填 | 说明 |
|---|---|---|
| eventtype | 是 | 事件类型,例如template_card_event |
| eventtype_name | 否 | 具体的事件结构体。例如当eventtype为template_card_event时,eventtype_name字段名为template_card_event。具体可参考模板卡片事件 |
所有的回调事件都遵循通用协议格式。
当用户当天首次进入智能机器人单聊会话时,触发该事件。开发者可回复一条文本消息或者模板卡片消息。
若未回复消息,用户当天再次进入也不再推送进入会话事件。
协议格式如下:
{
"msgid": "CAIQ16HMjQYY\/NGagIOAgAMgq4KM0AI=",
"create_time":1700000000,
"aibotid": "AIBOTID",
"from": {
"corpid": "wpxxxx",
"userid": "USERID"
},
"msgtype": "event",
"event": {
"eventtype": "enter_chat"
}
}
参数说明:
| 参数 | 说明 |
|---|---|
| eventtype | 事件类型,此处固定为enter_chat |
按钮交互、投票选择和多项选择模版卡片中的按钮点击后,企业微信会将相应事件发送给机器人
当有模版卡片回调事件的时候,企业微信服务只会发起一次请求,企业微信服务器在五秒内收不到响应会断掉连接,丢弃该回调事件。
模板卡片事件通用协议示例:
{
"msgid": "CAIQ16HMjQYY\/NGagIOAgAMgq4KM0AI=",
"create_time": 1700000000,
"aibotid": "AIBOTID",
"from": {
"corpid": "CORPID",
"userid": "USERID"
},
"chatid": "CHATID",
"chattype": "group",
"response_url": "RESPONSEURL",
"msgtype": "event",
"event": {
"eventtype": "template_card_event",
"template_card_event": {
"card_type": "vote_interaction",
"event_key": "button_replace_text",
"task_id": "fBmjTL7ErRCQSNA6GZKMlcFiWX1shOvg",
"selected_items": {
"selected_item": [
{
"question_key": "button_selection_key1",
"option_ids": {
"option_id": [
"button_selection_id1"
]
}
}
]
}
}
}
}
其中,eventtype固定为template_card_event。对应结构体TemplateCardEvent。
参数说明:
| 参数 | 说明 |
|---|---|
| response_url | 支持主动回复消息的url |
TemplateCardEvent结构说明:
| 参数 | 是否必填 | 说明 |
|---|---|---|
| cardtype | 是 | 模版卡片的模版类型,此处固定为button_interaction |
| eventkey | 是 | 用户点击的按钮交互模版卡片的按钮key |
| task_id | 是 | 用户点击的交互模版卡片的task_id |
| selected_items | 否 | 用户点击提交的选择框数据,参考SeletedItem结构说明 |
参考SeletedItem结构说明:
| 参数 | 是否必填 | 说明 |
|---|---|---|
| question_key | 用户点击提交的选择框的key值 | |
| optionids.optionid | 用户在选择框选择的数据。当选择框为单选的时候,optionids数组只有一个选项key值; 当选择框为多选的时候,optionids数组可能有多个选项key值 |
当用户点击机器人的按钮交互卡片模块消息的按钮时候,触发相应的回调事件
回调示例
{
"msgid": "CAIQ16HMjQYY\/NGagIOAgAMgq4KM0AI=",
"create_time": 1700000000,
"aibotid": "AIBOTID",
"from": {
"corpid": "CORPID",
"userid": "USERID"
},
"chatid": "CHATID",
"chattype": "group",
"response_url": "RESPONSEURL",
"msgtype": "event",
"event": {
"eventtype": "template_card_event",
"template_card_event": {
"card_type": "button_interaction",
"event_key": "button_replace_text",
"task_id": "fBmjTL7ErRCQSNA6GZKMlcFiWX1shOvg",
"selected_items": {
"selected_item": [
{
"question_key": "button_selection_key1",
"option_ids": {
"option_id": [
"button_selection_id1"
]
}
}
]
}
}
}
}
参数说明:
| 参数 | 说明 |
|---|---|
| cardtype | 事件类型,此处固定为button_interaction |
| selected_items | 下拉式的选择器选择的数据 |
当用户在选择选项后,点击按钮触发相应的回调事件
回调示例
{
"msgid": "CAIQ16HMjQYY\/NGagIOAgAMgq4KM0AI=",
"create_time": 1700000000,
"aibotid": "AIBOTID",
"from": {
"corpid": "CORPID",
"userid": "USERID"
},
"chatid": "CHATID",
"chattype": "group",
"response_url": "RESPONSEURL",
"msgtype": "event",
"event": {
"eventtype": "template_card_event",
"template_card_event": {
"card_type": "vote_interaction",
"event_key": "button_replace_text",
"task_id": "fBmjTL7ErRCQSNA6GZKMlcFiWX1shOvg",
"selected_items": {
"selected_item": [
{
"question_key": "button_selection_key1",
"option_ids": {
"option_id": [
"one",
"two"
]
}
}
]
}
}
}
}
| 参数 | 说明 |
|---|---|
| cardtype | 模版卡片的模版类型,此处固定为 vote_interaction |
| selected_items | 用户点击提交的投票选择框数据 |
当用户在下拉框选择选项后,点击按钮触发相应的回调事件
回调示例
{
"msgid": "CAIQ16HMjQYY\/NGagIOAgAMgq4KM0AI=",
"create_time": 1700000000,
"aibotid": "AIBOTID",
"from": {
"userid": "USERID"
},
"chatid": "CHATID",
"chattype": "group",
"response_url": "RESPONSEURL",
"msgtype": "event",
"event": {
"eventtype": "template_card_event",
"template_card_event": {
"card_type": "multiple_interaction",
"event_key": "button_replace_text",
"task_id": "fBmjTL7ErRCQSNA6GZKMlcFiWX1shOvg",
"selected_items": {
"selected_item": [
{
"question_key": "button_selection_key1",
"option_ids": {
"option_id": [
"button_selection_id1"
]
}
},
{
"question_key": "button_selection_key2",
"option_ids": {
"option_id": [
"button_selection_id2"
]
}
}
]
}
}
}
}
| 参数 | 说明 |
|---|---|
| cardtype | 模版卡片的模版类型,此处固定为 multiple_interaction |
| selected_items | 用户点击提交的下拉菜单选择框列表数据 |
用户点击文本通知,图文展示和按钮交互卡片右上角的菜单时会弹出菜单选项,当用户点击具体选项的时候会触发相应的回调事件
回调示例
{
"msgid": "CAIQ16HMjQYY\/NGagIOAgAMgq4KM0AI=",
"create_time": 1700000000,
"aibotid": "AIBOTID",
"from": {
"userid": "USERID"
},
"chatid": "CHATID",
"chattype": "group",
"response_url": "RESPONSEURL",
"msgtype": "event",
"event": {
"eventtype": "template_card_event",
"template_card_event": {
"card_type": "text_notice",
"event_key": "button_replace_text",
"task_id": "fBmjTL7ErRCQSNA6GZKMlcFiWX1shOvg"
}
}
}
| 参数 | 说明 |
|---|---|
| cardtype | 模版卡片的模版类型,此处可能为 text_notice , news_notice 和 button_interaction |
用户对机器人回复消息进行准确或不准确反馈
开发者接收到智能机器人的消息事件后,可以将事件与即将回复的流式消息关联起来,并在回复消息中设置反馈信息,后续收到用户的反馈事件,可以复盘智能机器人的回复效果
该事件目前仅支持回复空包
{
"msgid": "CAIQ16HMjQYY\/NGagIOAgAMgq4KM0AI=",
"create_time": 1700000000,
"aibotid": "AIBOTID",
"chatid": "CHATID",
"chattype": "group",
"from": {
"userid": "USERID"
},
"msgtype": "event",
"event": {
"eventtype": "feedback_event",
"feedback_event": {
"id": "FEEDBACKID",
"type": 2,
"content": "能再详细一些么",
"inaccurate_reason_list": [
2,
4
]
}
}
}
参数说明:
| 参数 | 说明 |
|---|---|
| eventtype | 事件类型,此处固定为feedback_event |
| feedback_event.id | 回复消息设置的反馈id |
| feedback_event.type | 反馈的类型: 1:准确 2:不准确 3:取消准确/不准确 |
| feedback_event.content | 用户输入的反馈内容,仅不准确反馈类型支持返回 |
| feedback_event.inaccurate_reason_list | 用户选择的负反馈原因列表,仅不准确反馈类型支持返回。负反馈原因有: 1: 与问题无关 2: 内容不完整 3: 内容有错误 4: 数据分析错误 |
