Как выйти из диалога в диалоге DialogFlow для действия - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть действие, которое представляет собой простую игру в слова, и после завершения игры я должен выйти из разговора. Я хочу, чтобы действие поддерживало Google Assistant и устройства на основе динамиков (мобильный телефон и т. Д.), Поэтому я рассматриваю намерение в общем виде.

const {WebhookClient} = require('dialogflow-fulfillment');
...
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
  ...
  function answerIntent(agent) {
     if (gameShouldEnd) {
       agent.end("Your score is 3/5. Cheers! GoodBye!");
     }
  }
  ...
}

Это приводит к ошибке журнала MalformedResponse: 'final_response' must be set

Я тоже попробовал конви апи, и это приводит к той же ошибке.

const {WebhookClient} = require('dialogflow-fulfillment');
...
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
  ...
  function answerIntent(agent) {
    if (gameShouldEnd) {
      let conv = agent.conv();
      conv.tell("Your score is 3/5. Cheers! GoodBye!");
      agent.add(conv);
    }
  }
  ...
}

Подскажите, пожалуйста, как закрыть Микрофон , когда игра заканчивается, и все равно отправляет ответ.

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Вы пробовали метод close:

  conv.close("Your score is 3/5. Cheers! GoodBye!");
0 голосов
/ 02 ноября 2018

Кажется, есть проблема с версией 0.5.0 пакета dialogflow-fullfillment в соответствии с зарегистрированной проблемой https://github.com/dialogflow/dialogflow-fulfillment-nodejs/issues/149

Я попытался обновить до 0.6.0, в котором произошли критические изменения, которые решили текущий опубликованный вопрос, но создали проблемы, связанные с контекстом.

...