配置互动机器人
准备工作
- 创建/加入UC企业
- 你需要在本地已开发一个用于接收事件回调的服务(例如,HTTP 服务),且该服务需要具备公网访问能力。后续在应用内配置事件订阅时,需要填写服务对应的请求地址。关于事件订阅的配置流程介绍,参见事件订阅流程。
步骤一:创建并配置应用
-
登录企业管理平台,创建企业自建应用
-
开启机器人能力,开启后用户可以进入机器人单聊或把机器人添加到群聊中。若需要支持用户可以在单聊给机器人发消息,请开启 机器人聊天 。
-
配置事件订阅,订阅接收消息事件,详见事件订阅流程。
【注意】接收消息事件仅支持接收机器人单聊消息和群聊中@机器人的消息
步骤二:配置消息处理业务逻辑
当用户在会话中向应用机器人发送消息时,应用会向服务端请求地址发送 接收消息 事件。服务收到事件数据后,需要根据消息内容匹配并返回命中的信息。本教程仅介绍服务端代码的处理逻辑。你需要根据本地服务的实际情况,自行完善代码以实现事件处理与消息发送。
代码逻辑说明
- 接收UC发送的事件回调数据如下。具体格式见数据内容。
{
"events": [
{
"createTime": 1703571282801,
"data": {
"message": {
"body": "<at id=\"dbc7594a6ec9497f846dcf065b10cd65\">测试事件机器人</at> ",
"bornTime": 1703571282791,
"msgId": 594604841324519424,
"msgType": "text",
"sessionId": 594584507337146368
},
"sender": {
"partyId": "f3f389f7d23f4bf183662b8152a582a7",
"senderId": "cc3c277abc7d493bbf8de1659eb8d7d1"
}
},
"dataVersion": 1,
"id": "e42d175b2453406299f32771875e6a09",
"metadataVersion": 1,
"partyId": "f3f389f7d23f4bf183662b8152a582a7",
"type": "im.message_receive",
"userId": null
}
]
}
- 识别数据中的事件内容。 由于订阅的事件可能不止一个,因此需要通过 接收消息 事件的特征,识别该事件。根据 接收消息 事件文档,获取该事件的关键特征:事件类型(
body.event.type)为im.message_receive。 -
提取用户发送消息的内容与 ID
-
在接收消息事件参数中,用户发送的内容包含在
event.data.message字段, 后续需要根据用户发送的内容进行业务处理,搜索与内容相关的信息。 - 在接收消息事件参数中,用户发送消息的 ID 对应
event.data.message.msgId字段,后续通过msgid定位并回复用户。 - 在接收消息事件参数中,消息发送会话的ID对应
event.data.message.sessionId字段,后续通过sessionId定位并处理对应会话。 -
在接收消息事件参数中,消息发送人的用户ID对应
event.data.sender.senderId字段。后续通过senderId定位并处理与该用户相关业务。 -
进行业务逻辑处理。 例如,基于用户消息内容,在企业内网搜索并保存相匹配的信息。
- 调用所需接口,如调用开放接口发送消息,在对应群聊中发消息。
