#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}))
Надеюсь, это сработает для вас.