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