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

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

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

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

Если вы хотите всегда делать запись в одну и ту же ячейку гугл-таблицы, обратитесь к этой статье.

Если вы хотите с помощью бота отправлять email, обратитесь к этой статье.

В данной статье мы рассмотрим добавление строки в гугл таблицу

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

Добавление вебхука и события

Чтобы использовать IFTTT с помощью бота, в IFTTT вам нужно использовать вебхуки. Затем, с помощью вебхука, вы можете отправлять данные в какой-либо сервис.

Зарегистрируйтесь на IFTTT.com или войдите в свой аккаунт IFTTT.

На главной странице https://ifttt.com нажмите Get more.
Если вы видите кнопку IfThisThenThat, то нажмите на неё.

Если не видите кнопку IfThisThenThat, то пролистайте вниз, пока не увидите надпись Create your own. Кликните на Create your own. Затем нажмите IfThisThenThat.

Нажмите This.


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

Скопируйте и вставьте название события (ивента) себе в блокнот, оно понадобится нам позже.

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


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

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

Давайте отправим полученную от пользователя информацию в Google таблицу.

Нажмите на that.



В поиске наберите sheet и кликните на Google Sheets.


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



Теперь перейдите в свой гугл диск и создайте в его корне папку с названием:

IFTTT

В этой папке создайте таблицу с названием:
TestSpreadsheet

Вернитесь на вкладку с IFTTT. Сейчас у вас открыта страница настройки сервиса Google таблиц.



Заполните поля:

В поле Spreadsheet name укажите название вашей только что созданной таблицы. Так как мы создали таблицу с названием "TestSpreadsheet", скопируйте и вставьте в это поле:
TestSpreadsheet



Если вы дали своей таблице другое название, то скопируйте название таблицы и вставьте его в это поле:



В поле Formatted row ничего изменять не нужно.

Если вы не уверены в том, что вам нужны какие-либо изменения, лучше ничего не трогайте в поле Formatted row.

Значения этого поля:

OccuredAt - это дата и время, когда строчка была добавлена в таблицу.

Если вы не хотите, чтобы в таблицу отправлялась дата и время события, скопируйте и вставьте в поле Formatted row следующее:
{{EventName}} ||| {{ Value1 }} |||{{Value2}} ||| {{ Value3 }}
EventName - это собственно имя события, которое вы придумали выше (в одну таблицу можно записывать данные с помощью разных событий).

Если вы не хотите, чтобы в таблицу отправлялись ни дата и время, ни название события, скопируйте и вставьте в поле следующее:
{{Value1}} |||{{Value2}} ||| {{ Value3 }}
Value1, Value2, Value3 - это собственно переменные, полученные ботом от пользователя в ходе диалога.

Менять значения Value1, Value2, Value3 здесь нельзя.

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

В поле Drive folder path укажите название папки, в которой лежит таблица. В нашем случае, мы поместили таблицу в папку под названием IFTTT, поэтому скопируйте и вставьте в это поле:
IFTTT

Если вы удалите всё из поля Drive folder path и оставите это поле пустым, то IFTTT создаст на вашем гугл диске папку с названием "IFTTT" и поместит таблицу туда. Сервис IFTTT не может поместить таблицу в корень диска. Поэтому лучше укажите папку, чтобы было проще найти таблицу.

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

Нажмите Finish.

После этого вы увидите информацию о созданном событии.

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

Протестируем вебхук

Перейдите по ссылке https://ifttt.com/maker_webhooks и нажмите Documentation.

Если ссылка не работает, перейдите на главную https://ifttt.com/, кликните webhooks, кликните Documentation.

Откроется страница тестирования веб-хука. Эта страница поможет вам проверить, правильно ли вы выполнили предыдущие шаги и работает ли вебхук.

Вместо {event} напишите название своего события. Ранее вы скопировали его в блокнот, так что теперь скопируйте и вставьте его в это поле.

Если вы забыли название своего события, то перейдите на главную https://ifttt.com/, кликните Webhooks и посмотрите название своего event в списке. Вы увидите карточки с надписями "If Maker Event "testbot", then Add row to Google Drive spreadsheet". Значение в кавычках и есть название вашего события.

Название события нужно вставлять без кавычек и скобок!



В пропуски value1, value2, value3 напишите что угодно, например, по числу. Это будут значения ваших переменных.

Нажмите на Test it.

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

Если строчка не появилась...

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

Перейдите на главную https://ifttt.com, нажмите My services > Webhooks, нажмите на свой апплет, затем на Settings, и посмотрите, как указано название таблицы и название папки. Поищите эту таблицу у вас в гугл-диске.

Если тестирование было успешным...

Если строчка появилась, то снова вставьте название события в ячейку (так как иногда эта ячейка автоматически очищается):

Внизу образуется ссылка на вебхук. Скопируйте её и вставьте в блокнот:



Подключаем событие к боту...

Теперь нужно в сценарии добавить блок HTTP запрос, с помощью бота отправить HTTP-запрос на адрес вебхука в нашем событии и передать в запросе нужные данные. Этим сейчас и займёмся.

Перейдите в Aimylogic, откройте свой сценарий или создайте новый сценарий.

Добавьте блок Ввод текста.

Чтобы передать данные в таблицу, нужно записать их в какую-либо переменную. Поэтому добавим блок Ввод текста и назначим переменную $message. Всё, что напишет на данном этапе пользователь, будет помещено в эту переменную.



Свяжите "Переход после ввода $message" с блоком HTTP-запрос.



выберите метод POST

В поле URL HTTP-запроса вставьте адрес вебхука, который вы скопировали в блокнот ранее.

Вкладку RESPONSE заполнять не нужно.

Кликните на вкладку Body, скопируйте и вставьте туда следующее:

{
"value1": "$message"
}


Если в будущем вы захотите передавать три переменные, то вставляйте так (пропишите названия переменных, которые присутствуют в вашем сценарии):
{
"value1": "$message",
"value2": "$address",
"value3": "$quantity"
}


Но в данный момент давайте протестируем отправку только одной переменной - $message.

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



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

Если вы не заполните вкладку HEADERS то запрос будет завершен с ошибкой 400.

От "Завершен с ошибкой" сделайте связь с блоком с текстом:
ошибка отправки $httpStatus



От варианта "Завершен успешно" сделайте связь с текстовым блоком с текстом:

Ваши данные отправлены!



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

Нажмите Тестировать, напишите боту своё сообщение (должно состоять из одной строки без разрывов) и проверьте, добавился ли данный текст в таблицу.



Если что-то не получается...

Убедитесь, что вы поставили метод HTTP-запроса - POST.
Убедитесь, что в HTTP-запросе на вкладке HEADERS указано:
Content-Type
со значением
application/json

Если вы видите ошибку -1, то убедитесь, что в url HTTP-запроса нет пробелов. Также убедитесь, что в названии вашего события нет фигурных скобок. Название нужно копировать без скобок и кавычек. Вот так неправильно:



Если вы видите ошибку 404, значит, неправильно оформлен http-запрос.

Если вы видите ошибку 400, значит, неправильно оформлен http-запрос. Обратите внимание на поле BODY. Например, вы не можете использовать одновременно одинарные - ' ' и двойные - " " кавычки.

Ошибка 400 может возникать, если в вашем тексте есть разрывы. Пожалуйста, вводите текст в одну строку. Если вы создаете апплет, создающий строку в гугл-таблице, то IFTTT может передавать только одну строку. Вы можете использовать javascript выражения в блоке Условия, чтобы устранять разрывы в введенном пользователями тексте.

Если вы отредактировали сценарий, продолжаете отсылать данные, но ничего не получается, значит, в ваш сценарий не поступили изменения. Остановите тестирование в тест-виджете и снова нажмите "Тестировать", чтобы изменения пришли в силу. Не рекомендуется также тестировать два сценария одновременно в разных вкладках.

Если всё же не получается отсылать данные, то проверьте, что в url запроса верно указано название вашего события . Проверьте название вашего события здесь - название события указывается в названии апплета в кавычках после "If Maker Event". В url запроса название события нужно указывать без кавычек и скобок.
Была ли эта статья полезна?
отменить
Спасибо!