Сделайте http-запрос с локального устройства, используя DialogFlow - PullRequest
0 голосов
/ 31 марта 2019

Я новичок в DialogFlow и не знаю, возможно ли то, чего я хочу достичь.

Я пытаюсь создать намерение DialogFlow, которое будет отправлять HTTP-запрос от пользовательского устройства после получения данной команды. Я знаю, как это сделать с помощью веб-хуков, но проблема в том, что HTTP-запросы веб-хуков приходят с серверов Google, а не с пользовательского устройства.

Причина, по которой я хочу, чтобы запрос исходил от пользовательского устройства, заключается в том, что получатель будет прослушивать только локальную сеть (это веб-сервер, работающий в интернет-маршрутизаторе). Так что это будет работать, только если HTTP-запрос приходит с устройства, подключенного к маршрутизатору.

Обходным путем может быть создание общего туннеля к маршрутизатору (с программными средствами, такими как ngrok), но мое приложение нацелено на реальных пользователей, поэтому я бы предпочел избежать этой сложной настройки.

Можно ли делать локальные запросы с DialogFlow? Или есть другой API-помощник Google, который я мог бы использовать для этой цели, например, решение Google IoT?

Спасибо

1 Ответ

1 голос
/ 01 апреля 2019

Вы можете сделать это, но не обязательно делать это как обычный проект Dialogflow. Вот шаги:

  1. Создайте свое действие через Dialogflow и добавьте веб-выполнение
  2. Добавьте способ отправки какого-либо уведомления на ваше локальное устройство.
    • Это может прослушивание базы данных, опрос, push-уведомления и т. Д.
  3. Когда ваше устройство получает это уведомление, оно выполняет действие локально
  4. Если вы хотите, чтобы этот ответ локального действия был отправлен обратно, вы можете обновить веб-крючок с помощью HTTP-ответа (при выполнении HTTP-вызова) или обновить поле в облачной базе данных.
    • Действия имеют время ожидания около 5 секунд, чтобы получить ответ, поэтому помните об этом пределе, если вы хотите сделать это
...