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.


Далее нажмите на Update cell in spreadsheet.



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

IFTTT

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

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


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

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



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

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

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





В поле Which cell? укажите название ячейки. Например, A1, D4 или B9.


Укажите только одну ячейку. Если вы укажите две ячейки, событие не будет работать.

В поле Value вы можете добавить те значения, которые вы хотите отправлять в ячейку. Нажмите кнопку Add ingredient под полем Value и добавьте нужные вам ингредиенты


- Обязательно добавьте переменные: Value1, Value2, Value3.
- Если вы хотите, чтобы IFTTT также, вместе со значением переменных, добавлял в ячейку название события, то добавьте ингредиент EventName.
- Если вы хотите, чтобы IFTTT также добавлял время, в которое отработало событие, то добавьте ингредиент OccurredAt.

Все выбранные значения будут занесены в одну ячейку через пробел.

Пример заполненной ячейки:

Далее, нажмите на Create Action.

Нажмите Finish.

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

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

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

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

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

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

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

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

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



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

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

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

Если запись не появилась...

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

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

Также, если вы указали две ячейки в настройках события, то запись не будет добавляться. Перейдите в 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 запроса название события нужно указывать без кавычек и скобок.
Была ли эта статья полезна?
отменить
Спасибо!