ifttt.com - это бесплатный онлайн сервис, который позволяет автоматизировать многие процессы в интернете. Например, отправить себе письмо на gmail, если погодный сервис прогнозирует завтра дождь.

С помощью IFTTT бот в AimyLogic может отправлять полученные от пользователя данные на интернет-сервисы, поддерживаемые IFTTT.

Например, получить в ходе диалога от пользователя его имя, номер телефона и адрес, а затем сохранить эти данные в Google таблице и отправить нотификацию сотруднику по почте или в Telegram.

Для реализации такой логики не нужно писать код и интегрироваться с сервисами Google и почтой. Все это уже делает IFTTT, остается только создать апплет в IFTTT, а затем выполнить обычный HTTP запрос из сценария бота в тот момент, когда нужно отправить данные.

Как использовать IFTTT

В IFTTT нужно создать апплет - описание того, как IFTTT будет принимать запросы от вашего бота и куда их отправлять (в какой сервис). Апплет состоит из триггера (как IFTTT принимает от бота запрос) и действия (куда направляет данные из запроса).

Создание триггера

Зайдите на ifttt.com и нажмите на My Applets - New applet, чтобы содать новый апплет.

Далее нажмите на this. В появившемся поиске наберите слово **webhook** и нажмите на найденный триггер под названием Webhooks.
Нажмите на Receive a web request. Придумайте любое название события и напишите его латинскими буквами без пробелов в поле Event Name.

Нажмите на Create trigger.



Создание действия

Теперь к триггеру нужно добавить действие - собственно тот сервис, куда вы хотите отправить данные от бота.

Это может быть любой сервис, который поддерживается в IFTTT - например, сохранение строчки в Google таблице, отправка почты и множество других.

Например, давайте отправим собранную с пользователя информацию в Google таблицу.

Нажмите на that.

Опять появляется поиск. Найдите там sheet и выберите найденный сервис Google Sheets.

Далее нажмите на Add row to spreadsheet.

Откроется страница настройки сервиса Google таблиц. Здесь можно указать имя таблицы (поле Spreadsheet Name ), папку где будет храниться таблица ( Drive folder path ), и самое главное - как записать данные в таблицу (поле Formatted row ).

В этом поле нужно указать, какие ячейки нужно заполнить какими переменными. OccuredAt - это дата и время, когда строчка была добавлена в таблицу. EventName - это собственно имя события, которое вы придумали выше (в одну таблицу можно записывать данные от разных ботов например, сделав разные апплеты с разными именами событий). Value1, Value2, Value3 - это собственно переменные, полученные ботом от пользователя в ходе диалога. Мы их сформируем в самом сценарии диалога.

IFTTT не дает сохранять более трех разных переменных. Если нужно больше, то стоит посмотреть в сторону платного аналога zapier.com

Нажмите на Create Action когда все настроили как нужно. Далее - нажмите Finish.

Теперь всякий раз, когда бот отправит HTTP запрос на настроенный нами webhook, то IFTTT возьмет переменные Value1, Value2, Value3 из этого запроса и автоматически добавит их в вашу Google таблицу.

В этом примере мы использовали сервис записи в Google таблицу, но вы можете использовать любые другие сервисы. Последовательность действий останется той же.



Подключаем апплет к боту

Чтобы запустить созданный апплет из вашего бота, нужно в боте выполнить HTTP запрос на адрес webhook-а в нашем апплете и передать в запросе нужные данные.

Для того, чтобы отправить HTTP запрос на адрес webhook-а IFTTT, нужно узнать этот адрес. У каждого пользователя он свой.

Нажмите на меню Search в верхней части страницы IFTTT. Далее наберите в поиске webhook. Нажмите на найденный сервис Webhooks. Далее нажмите на Settings.

Откроется страница, на которой есть URL. Это еще не адрес веб-хука! Нужно скопировать этот URL и открыть его в браузере.

Откроется страница тестирования веб-хука. Тут можно заполнить имя события (которое вы придумали при создании апплета) и значения переменных Value1, Value2, Value3. Если нажать на Test it, то должно произойти то, что соответствует имени события (в нашем случае в таблицу добавится строчка с данными из переменных Value1, Value2, Value3 ).

Теперь скопируйте получившийся URL веб-хука (в строке с заголовком Make a POST or GET web request to: ) - это и есть адрес веб-хука, который вы должны использовать в HTTP запросе в боте.

Также можно скопировать и сам запрос (из строки с заголовком With an optional JSON body of: ) - это то, что будет отправляться в IFTTT. Его мы подставим далее в тело запроса в HTTP запросе в боте.

Отправляем данные из бота

Теперь у нас есть URL нашего веб-хука и формат запроса, который бот должен отправить, чтобы IFTTT добавил строчку в Google таблицу. Последний шаг - это добавить в сценарий бота HTTP запрос к этому веб-хуку.

Добавьте в сценарий вашего бота блок HTTP запрос на тот экран, где бот должен вызвать сервис IFTTT (в нашем случае - добавить строчку в Google таблицу).



Выберите метод запроса POST, в URL вставьте адрес, который вы получили ранее. На вкладке Body напишите JSON с полями value1, value2 и value3 - в них подставьте те данные, которые вы хотите отправить в IFTTT.

Например, на скриншоте выше мы сохраняем в Google таблицу значения из переменных $item, $address и $quantity. Эти переменные наш бот создал в процессе сценария и теперь может сохранить их в таблице через IFTTT.

Перейдите на вкладку Headers и добавьте там заголовок Content-Type со значением application/json



Нажмите на Сохранить.

Теперь ваш бот отправит нужные вам значения в нужный вам сервис на IFTTT когда дойдет до блока HTTP запроса. Так вы можете передавать данные из бота в любые сервисы, которые поддерживаются в IFTTT.
Была ли эта статья полезна?
Спасибо!