接收消息

RBM 代理通过 webhook。 当用户向您的代理发送消息时,Google 的 RBM 服务会将 您配置的网络钩子。然后,代理就可以对消息进行解码, 进行处理,然后向用户发出响应。

用户向代理发送消息

用户可以发送 RCS 客户端允许的任何文本、位置信息或文件。 您的代理需要处理用户可能会发送的所有文本、位置或文件, 以及这些消息可能触发的所有错误状态

处理传入消息

代理如何处理和响应用户消息在很大程度上取决于 业务逻辑但通常情况下,响应用户的步骤 保持一致。

第 1 步:确定用户发送消息的类型

用户可以发送四种类型的消息:

  • 文本消息是自由格式的响应。
  • 建议消息包含回传数据和 用户点按的建议操作或建议回复。
  • 位置消息包含纬度值和经度值。

  • File 消息包含文件的 URI 以及相关数据。

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