根据用户平台设置 Dialogflow 响应对象

Set Dialogflow response object based on user platform

我有一个 Webhook 服务器,它使用丰富的消息对象响应 Dialogflow,它在 Google 助手上工作。

但是,如果用户从 Google Assitant 以外的其他平台(例如 Web 或 Amazon Alexa)与我的机器人聊天,我想发送基本的文本回复。

查看文档后,我不确定如何在用户使用 Google 助手时发送一个显示丰富消息对象的响应消息对象,以及如何在其他平台上发送纯文本响应作为后备。

这是我当前的富消息响应对象的格式,取自文档:https://dialogflow.com/docs/reference/agent/message-objects#basic_card_response

{
    "messages": [
      {
        "buttons": [
          {
            "openUrlAction": {
              "url": "https://linkUrl.com"
            },
            "title": "AoG Card Link title"
          }
        ],
        "formattedText": "AoG Card Description",
        "image": {
          "url": "http://imageUrl.com"
        },
        "platform": "google",
        "subtitle": "AoG Card Subtitle",
        "title": "AoG Card Title",
        "type": "basic_card"
      }
    ]
}

为此,您只需在 messages 对象中包含一个常规 text/speech response

/query doc 中,查看 POST 响应示例。

您的 JSON 应如下所示:

{
    "messages": [
      {
        "buttons": [
          {
            "openUrlAction": {
              "url": "https://linkUrl.com"
            },
            "title": "AoG Card Link title"
          }
        ],
        "formattedText": "AoG Card Description",
        "image": {
          "url": "http://imageUrl.com"
        },
        "platform": "google",
        "subtitle": "AoG Card Subtitle",
        "title": "AoG Card Title",
        "type": "basic_card"
      },
      {
        "speech": "text response",
        "type": 0            
      }
    ]
}