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" } } }
处理传入事件
当代理向用户发送消息时,代理会收到通知 递送和阅读。
以下代码展示了代理接收消息的方式。对于格式设置和 值信息,请参阅 UserEvent。
消息已递送给用户
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "eventId": "EVENT_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "eventType": "DELIVERED" }
用户已读消息
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "eventId": "EVENT_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "eventType": "READ" }
用户正在输入
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "IS_TYPING", "eventId": "EVENT_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "agentId": "AGENT_ID" }