RBM 代理通过 webhook 接收消息和事件。 当用户向您的代理发送消息时,Google 的 RBM 服务会将该消息发送到您配置的网络钩子。然后,代理可以对消息进行解码、处理,并向用户发送回答。

用户可以发送 RCS 客户端允许的任何文本、位置信息或文件。 您的代理需要处理用户可能发送的任何文本、位置信息或文件,以及这些消息可能触发的任何错误状态。
如需了解代理如何处理送达回执、已读回执和输入状态提示,请参阅接收事件。
处理收到的消息
代理如何处理和回复用户消息在很大程度上取决于您的业务逻辑。不过,回复用户消息的步骤通常是一致的。
第 1 步:确定用户发送的消息类型
用户可以发送四种类型的消息:
第 2 步:处理消息内容
用户消息的内容应指导代理在对话中的逻辑和后续响应。
识别用户意图的最简单方法是使用建议回复或建议操作中的回传数据。无论建议关联的文本是什么,回传数据都是机器可读的。
如果用户发送短信,代理可能会解析响应以查找受支持的关键字,或者使用 NLU(例如 Dialogflow)来处理用户消息并确定后续步骤。
位置和文件消息不包含文本或回发数据,因此客服人员在回复之前应考虑对话的上下文和最近的消息。
如果代理不知道如何回复用户的消息,则应以错误状态进行回复,并通过提示用户提供更多信息、以其他方式请求输入或提供代理知道如何回复的建议回复和建议操作,尝试继续对话。
第 3 步:实现互动的业务逻辑
当代理确定用户消息的正确回答后,会从您的基础架构中收集必要信息,并根据需要与其他系统互动,以实现互动的业务逻辑。
第 4 步:回复用户
代理满足互动所需的业务逻辑后,会发送另一条消息,并继续与用户对话。
示例
以下代码展示了代理如何接收消息。如需了解格式设置和值信息,请参阅 UserMessage。
支持专员收到短信
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"text": "Hello, world!"
}客服人员收到来自建议的消息
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"suggestionResponse": {
"postbackData": "suggestion_1",
"text": "Suggestion #1"
}
}代理接收位置信息
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"location": {
"latitude": 37.422000,
"longitude": -122.084056
}
}智能体接收文件
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "userFile": { "thumbnail": { "mimeType": "image/jpeg", "fileSizeBytes": 1280, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c8", "fileName": "4_animated.jpeg" }, "payload": { "mimeType": "image/gif", "fileSizeBytes": 127806, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9", "fileName": "4_animated.gif" } } }