Не удалось позвонить через Webhook. Ошибка: DEADLINE_EXCEEDED - PullRequest
0 голосов
/ 27 января 2020

Я написал функции webhook во встроенном редакторе. Я получаю срок превышен ошибка с перерывами. У всех веб-крючков, которые потерпели неудачу с ошибкой превышения крайнего срока, есть webhook_latency_ms: 4992ms В документации Dialogflow (https://cloud.google.com/dialogflow/docs/fulfillment-how) упоминается, что тайм-аут по умолчанию равен 5se c, поэтому мой веб-крючок не должен выдавать эту ошибку, поскольку он находится в пределах 5se c.

Webhook имеет очень простой код, который займет не более 20-30 мс. В большинстве случаев та же функция имеет webhook_latency_ms: менее 50 мс. Какие факторы могут способствовать увеличению латентности?

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({ request, response });
function testHandler(agent) { 
    let pendingHabits = agent.getContext('pendinghabits').parameters.habits; 
    let message = "Ok, let me know when you complete these habits:"; 
    for (let i = 0; i < pendingHabits.length; i++) { 
        message = message + "\n" + pendingHabits[i]; 
    } 
    let payload = { 
        type: 'message', 
        isPositive: false, 
        messages: [{ type: 0, text: message }] 
    }; 
    agent.add(new Payload(agent.UNSPECIFIED, payload)); 
}})

1 Ответ

0 голосов
/ 29 января 2020

Вам не хватает вашего вызова обработчика, так как я вижу предоставленный вами код,

const functions = require('firebase-functions');
const {WebhookClient, Card, Suggestion} = require('dialogflow-fulfillment');

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((req, res) => {
  const agent = new WebhookClient({ req, res });

  function intentHandler(agent) {
    agent.add('This message is from Dialogflow\'s Cloud Functions for Firebase editor!');
    agent.add(new Card({
        title: 'Title: this is a card title',
        imageUrl: 'https://developers.google.com/actions/assistant.png',
        text: 'This is the body text of a card.  You can even use line\n  breaks and emoji! ?',
        buttonText: 'This is a button',
        buttonUrl: 'https://assistant.google.com/'
      })
    );
    agent.add(new Suggestion('Quick Reply'));
    agent.add(new Suggestion('Suggestion'));
  }

  agent.handleRequest(intentHandler);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...