Неправильный ответ: не удалось проанализировать ответ Dialogflow в AppResponse из-за пустого речевого ответа - PullRequest
2 голосов
/ 15 апреля 2019

Я использую функцию firebase для выполнения webhook в Dialogflow.Я получаю webhook успешно, как fulfillment status, но он не работает.Я использую версию 1. Когда я тестирую его на симуляторе Google Assistant, он говорит: «Приложение не отвечает».

функция firebase

const functions = require('firebase-functions');

exports.webhook = functions.https.onRequest((request, response) => {
    response.send({
        "google":{
           "richResponse":{
              "items":[
                 {
                    "simpleResponse":{
                       "textToSpeech":"Hey! Good to see you."
                    }
                 },
                 {
                    "mediaResponse":{
                       "mediaType":"AUDIO",
                       "mediaObjects":[
                          {
                             "name":"Exercises",
                             "description":"ex",
                             "largeImage":{
                                "url":"http://res.freestockphotos.biz/pictures/17/17903-balloons-pv.jpg",
                                "accessibilityText":"..."
                             },
                             "contentUrl":"https://theislam360.me:8080/hbd.mp3"
                          }
                       ]
                    }
                 }
              ],
              "suggestions":[
                 {
                    "title":"chips"
                 }
              ]
           }
        }
      }
   )
});`

Когда я копируювставьте ответ от {google... до конца в пользовательскую полезную нагрузку вручную через графический интерфейс. Это работает.В то время как для webhook, он не работает.

ОТВЕТ RAW API

 {
  "id": "eaf627ed-26b5-4965-b0b0-bc77144e144b",
  "timestamp": "2019-04-15T11:54:18.948Z",
  "lang": "en",
  "result": {
    "source": "agent",
    "resolvedQuery": "play hbd",
    "action": "",
    "actionIncomplete": false,
    "parameters": {
      "any": "hbd"
    },
    "contexts": [],
    "metadata": {
      "isFallbackIntent": "false",
      "webhookResponseTime": 34,
      "intentName": "play",
      "intentId": "e60071cd-ce31-4ef9-ae9b-cc370c3362b3",
      "webhookUsed": "true",
      "webhookForSlotFillingUsed": "false"
    },
    "fulfillment": {
      "messages": []
    },
    "score": 1
  },
  "status": {
    "code": 200,
    "errorType": "success"
  },
  "sessionId": "e91bd62f-766b-b19d-d37b-2917ac20caa6"
}

ЗАПРОС ВЫПОЛНЕНИЯ

{
  "id": "eaf627ed-26b5-4965-b0b0-bc77144e144b",
  "timestamp": "2019-04-15T11:54:18.948Z",
  "lang": "en",
  "result": {
    "source": "agent",
    "resolvedQuery": "play hbd",
    "speech": "",
    "action": "",
    "actionIncomplete": false,
    "parameters": {
      "any": "hbd"
    },
    "contexts": [],
    "metadata": {
      "intentId": "e60071cd-ce31-4ef9-ae9b-cc370c3362b3",
      "webhookUsed": "true",
      "webhookForSlotFillingUsed": "false",
      "isFallbackIntent": "false",
      "intentName": "play"
    },
    "fulfillment": {
      "speech": "",
      "messages": []
    },
    "score": 1
  },
  "status": {
    "code": 200,
    "errorType": "success"
  },
  "sessionId": "e91bd62f-766b-b19d-d37b-2917ac20caa6"
}

ОТВЕТ НА ВЫПОЛНЕНИЕ

{
  "google": {
    "richResponse": {
      "items": [
        {
          "simpleResponse": {
            "textToSpeech": "Hey! Good to see you."
          }
        },
        {
          "mediaResponse": {
            "mediaType": "AUDIO",
            "mediaObjects": [
              {
                "name": "Exercises",
                "description": "ex",
                "largeImage": {
                  "url": "http://res.freestockphotos.biz/pictures/17/17903-balloons-pv.jpg",
                  "accessibilityText": "..."
                },
                "contentUrl": "https://theislam360.me:8080/hbd.mp3"
              }
            ]
          }
        }
      ],
      "suggestions": [
        {
          "title": "chips"
        }
      ]
    }
  }
}

СТАТУС НА ВЫПОЛНЕНИЕ

Webhook execution successful

enter image description here

Журналы Firebase enter image description here

Журналы Google Assistant Simulator enter image description here

1 Ответ

0 голосов
/ 15 апреля 2019

Вы не используете правильный JSON в ответе.Поместив его в графический интерфейс в разделе «Пользовательская полезная нагрузка», он создает больший отклик JSON для вас.Объект google должен находиться под объектом data для Dialogflow v1 или payload для Dialogflow v2.(И если вы не переключились на v2 - вы должны сделать это немедленно, так как v1 будет выключен примерно через месяц.)

То, что вы возвращаете, должно выглядеть больше как

{
  "payload": {
    "google": {
      ...
    }
  }
}
...