Ошибка неправильного ответа в Google Assistant - PullRequest
0 голосов
/ 28 июня 2019

Я вызываю сторонний API для получения данных.В ситуации, когда API возвращает ошибку, я не могу продолжить свой поток пользователей в Google Assitant

Ошибка, которую я вижу в облачной консоли Google, выглядит следующим образом:

"MalformedResponse: ErrorId:. c316c2bc-be3b-4c8f-8d9b-2b45434a0325 не удалось разобрать ответ Dialogflow в AppResponse из-за недопустимого ответа платформы:. не удалось найти RichResponse или SystemIntent в ответ платформы для agentId: 0bc4ed97-ДТЭК-4936-b90d-28f047eb7b34 и intentId: 3dcf4b35-00e0-4c75-815c-d1a76494e08e "

Вот мой код намерения.

app.intent('askPin', (conv, params) => {

  conv.user.storage.pin_prompt_count = conv.user.storage.pin_prompt_count + 1;

  var member = services.getMemberDetails(memberId, params.account_pin);

  return member.then(function (result) {

    if (result) {
      conv.user.storage.pin_prompt_count = 0; //reset prompt count once verified
      conv.user.storage.account_pin = params.account_pin;
      conv.contexts.delete('account-pin-context');//delete context to pin intent will not be invoked again.

      return handleService(conv);
    }
  }).catch(function (err) {
    console.log("Paresh Varde 1");
    conv.ask("Invalid Pin. Please try again");
  })
});

Вот ответ, который я вижу, генерируемый из журнала

{
  "status": 200,
  "headers": {
    "content-type": "application/json;charset=utf-8"
  },
  "body": {
    "payload": {
      "google": {
        "expectUserResponse": true,
        "richResponse": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "Invalid Pin. Please try again"
              }
            }
          ]
        }
      }
    }
  }
}

Я не вижу ошибок в консоли firebase (где развернута функция).Однако я вижу ошибку в консоли Google Cloud следующим образом:

MalformedResponse: ErrorId: c316c2bc-be3b-4c8f-8d9b-2b45434a0325. Failed to parse Dialogflow response into AppResponse because of invalid platform response. : Could not find a RichResponse or SystemIntent in the platform response for agentId: 0bc4ed97-dfec-4936-b90d-28f047eb7b34 and intentId: 3dcf4b35-00e0-4c75-815c-d1a76494e08e

Я вижу сообщение на моем симуляторе как "Приложение не отвечает прямо сейчас. Попробуй еще раз скоро".и это оставляет разговор.

Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 02 июля 2019

Проблема заключалась в том, что мой звонок через Интернет занимал более 5 секунд. Webhook должен завершить свое выполнение менее чем за 5 секунд, чтобы работать должным образом и сделать разговор гладким.

На данный момент мне нужно обработать мой интерфейс REST, чтобы вызываемый API отвечал быстро, чтобы достичь этого лимита времени ожидания.

...