быстрый ответ dialogflow для клиента Facebook

#node.js #dialogflow-es #chatbot #facebook-messenger #facebook-chatbot

#node.js #dialogflow-es #чат-бот #facebook-messenger #facebook-чат-бот

Вопрос:

Когда я пытаюсь отправить ответ из приложения узла в Dialogflow с помощью webhook для клиента Facebook Messenger.

Однако попытка отправить быстрый ответ клиенту Facebook не работает и выдает ошибку ниже.

Ошибка: строка ответа, требуемая конструктором предложений

Любая помощь будет оценена.

 const {Suggestion} = require('dialogflow-fulfillment');
agent.add(new Suggestion().setReply('test reply from NodeApp'));
  

Ответ №1:

Во-первых, вам необходимо обновить версию пакета dialogflow-fulfillment в файле package.json во встроенном редакторе до ^ 0.6.1, которая является последней.

Затем, я думаю, вы можете просто отправлять быстрые ответы, используя инструкцию:

 agent.add(new Suggestion(`sample reply`));
  

Пожалуйста, помните, что перед ответами Facebook должен быть текстовый ответ, чтобы принять объект ответа.

Ниже приведен фрагмент, который может помочь вам лучше.

 const {Suggestion} = require('dialogflow-fulfillment');
agent.add(`This is quick reply.`);
agent.add(new Suggestion(`option 1`));
agent.add(new Suggestion(`option 2`));
  

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

Если нет (т.Е. Выберите собственную среду развертывания / разработки), вы должны отправлять быстрые ответы в виде пользовательских полезных нагрузок в коде выполнения. (Здесь также необходимо сначала обновить пакет выполнения dialogflow)

Вот пример фрагмента кода:

 const {Payload} = require("dialogflow-fulfillment")
var payload = {
  "facebook": {
    "text": "Welcome to my agent!",
    "quick_replies": [
      {
        "content_type": "text",
        "payload": "reply1",
        "title": "reply 1"
      }
    ]
  }
}
agent.add(new Payload(agent.UNSPECIFIED, payload, {rawPayload: true, sendAsMessage: true}))
  

Надеюсь, это сработает для вас.