Как сделать HTTP-запрос локальной сети от Google Assistant?

Я хочу делать HTTP-запросы к серверу (например, Node-red или Arduino) в моей локальной сети непосредственно из моего Google Assistant.

Я хотел бы воспроизвести поведение этого виджета, которое правда не работает с гугл помощником.

Использование IFTTT с веб-перехватчиками заставляет веб-сайт IFTTT пинговать в Интернете со своего сервера, а не с моего мобильного телефона в моей частной локальной сети. Я думаю, что то же самое произойдет, если я использую действия Google с api.ai с помощью webhook. Например, это приложение Wake On Lan может подключаться к локальной сети запросы, но он не принимает ссылки типа 192.168.0.2:1880/test, он принимает только IP-адреса, но работает со словом Google Hot, OK Google.

Итак, как я могу делать запросы HTTP POST прямо из моего Google Assistant?


person Rajduino    schedule 12.09.2017    source источник
comment
Вы пытаетесь добиться этого с помощью Python SDK или создали Android-совместимый SDK, используя привязки grpc?   -  person Gaurav    schedule 16.09.2017
comment
@Gaurav Я понятия не имею, о чем вы говорите, я новичок и понятия не имею, как использовать действия sdk.   -  person Rajduino    schedule 17.09.2017
comment
Вы используете встроенный в Google Ассистент на своем телефоне или пишете собственное приложение с помощью SDK Google Ассистента разработчиков .google.com / assistant / sdk.   -  person Gaurav    schedule 18.09.2017
comment
@Gaurav Да, я пытался сделать это, используя только действия помощника, используя инструменты api.ai или IFTTT, но теперь я думаю, что с ними это невозможно, мне нужно будет сделать приложение, и я не эксперт в создании приложений для Android. И я буду использовать его на телефоне, а не на любом другом устройстве.   -  person Rajduino    schedule 23.09.2017


Ответы (1)


Я не уверен на 100%, что вы собираетесь здесь делать, но я ДУМАЮ, что ngrok может вам помочь.

Если ваша цель - иметь доступ к серверу, который доступен только в вашей локальной сети, то вам действительно нужен способ сделать этот сервер доступным извне сети, но только для вас. У вас есть два способа сделать это. Один из них - открыть порт на вашем маршрутизаторе, что по своей сути небезопасно. Другой - использовать ngrok. ngrok - это приложение, которое вы запускаете на локальном сервере, которое открывает безопасный туннель в вашу локальную сеть. Вы получаете доступ к нему, используя внешний URL-адрес, который выглядит следующим образом:

https://02355cab0.ngrok.io/

Хеш уникален, и только вы его знаете. Этот URL-адрес доступен из любого места в Интернете, но указывает на сервер в вашей локальной сети, то есть:

https://02355cab0.ngrok.io/ -> http://192.168.0.2:1880

Проверьте это здесь: https://ngrok.com/

Затем, используя этот URL-адрес ngrok, вы можете передать его Google Assistant или другому приложению (IFTTT, если хотите), чтобы совершать звонки из Интернета непосредственно в вашу локальную сеть.

person Isaac Ray    schedule 22.03.2018
comment
Спасибо, да, я знаю, что переадресация портов возможна, но мой чертов провайдер дает мне соединение из-за NAT, поэтому переадресация портов потребует от меня разговора с их администратором !! Спасибо за ngrok.com, кстати, он полезен, буду использовать его в будущем. Но я думаю, что Google еще не начал поддержку встраивания помощника Google в ваш apk. - person Rajduino; 23.03.2018