Похоже, у вас есть несколько вещей, которые вы смешали вместе.
Ваша программа node.js использует два разных метода для прослушивания порта, способ, разработанный для использования CloudФункции для Firebase и способ использования экспресс-библиотеки , но вы не указали, что запускаете программу, используя либо.Давайте рассмотрим каждую вещь, которая работает (или должна работать)
ngrok
ngrok
- это перенаправитель портов, поэтому предполагается, что существует другая программа, котораяработает, слушая указанный вами порт.Он не начинает ничего прослушивать сам этот порт.
Облачные функции для Firebase
Часть, начинающаяся с exports.dialogflowFirebaseFulfillment
, предназначена для облачных функций для Firebase.Большинство примеров от Google используют это, потому что его легко установить и использовать для начинающих, он хорошо масштабируется в процессе производства и может использовать ежемесячный облачный кредит от Google после того, как вы развернули свое действие.Весь код внутри этого блока - ваш обработчик webhook.
Код, написанный для облачных функций для Firebase, обычно запускается на серверах Google, но для тестирования вы можете использовать команду firebase serve --only functions
для его запуска.локально.
экспресс-библиотека
Вы написали код, который начинает прослушивать порт 3000 и для определенного пути (/getName
), но что вы возвращаететам не вызывается какой-либо код, который вы использовали ранее.
Параметры req
и res
соответствуют параметрам request
и response
в разделе Облачные функции (облачные функции просто используют экспресс под капотом), поэтому вы можете переместить код обработки намерений весли хотите, внутри этого экспресс-обработчика.
Код, написанный с использованием экспресс-библиотеки, запускается с помощью команды node
.Вам понадобится общедоступный сервер, когда вы собираетесь выпустить свой код - не пытайтесь запустить сервер производственного уровня через ngrok для подключения к домашней сети.