Диалоговый поток бота Facebook Messenger: получение ответов через webhook с использованием HTTP-запроса Firebase

#facebook #firebase #dialogflow-es #webhooks #actions-on-google

#Facebook #firebase #диалоговый поток-es #webhooks #действия в Google

Вопрос:

Я создал простого бота из Dialogflow и подключился к Webhook Fulfillment, используя мой HTTP-запрос Firebase. Затем я интегрировал проект с FB Messenger и выполнил все настройки. Проблема в том, что я не получаю никаких ответов от Webhook к боту messenger.

Вот что я сделал: я создал два файла.

(Index.js )

 const functions = require('firebase-functions');
const appModule = require('./routes/api'); //calls my api.js file

module.exports = {
    'api': functions.https.onRequest(appModule)
}
  

(routes/api.js )

 const {dialogflow, BasicCard, Image} = require('actions-on-google'),
      app = dialogflow({ debug: true });


app.intent('favoriteColor', (conv) => {
    console.log('in second intent!!');
    conv.close('BTW you look great!');
});

module.exports = app;
  

Итак, когда я тестирую это в чате Dialogflow или в симуляторе Google Assistant, это работает отлично. (См. Изображение ниже)

симулятор в Google assistant

Затем, когда я тестирую это в Facebook Messenger, я не получаю ответа от webhook. Единственный ответ, который приходит к боту FB, — это ответ Dialogflow, затем он останавливается, как только ответы поступают от webhook. (См. Изображение ниже)

бот fb messenger

Это мои журналы из firebase. (См. Изображение ниже)

журналы firebase

Как вы можете видеть, в журналах нет ошибок, ответ отправляется, но он не приходит к моему боту Facebook Messenger.

В чем может быть проблема? Спасибо.

Ответ №1:

Библиотека действий в Google предназначена для возврата только тех ответов, которые созданы для Google Assistant.

Если вам нужны ответы для других платформ, вам необходимо использовать библиотеку, которая будет отправлять ответы, которые являются мультиплатформенными, такими как dialogflow-fulfillment.