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

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

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

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


Какие задачи можно выполнить с помощью IFTTT?

У нас есть несколько уроков по интеграции с IFTTT, которые помогут вам решить ваши задачи.

Запись в гугл таблицу

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

Если вы хотите, чтобы в таблицу добавлялась новая строчка с информацией от бота, то обратитесь к данной статье.

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

Отправка email

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

Можно использовать IFTTT с другими сервисами, например, c Trello.


В данной статье мы рассмотрим запись одной и той же ячейки гугл таблицы

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

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

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

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

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

На главной странице https://ifttt.com нажмите Explore.



Затем нажмите на знак +



Если вы не видите знак плюс, то используйте эту ссылку: https://ifttt.com/create

Нажмите 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? укажите название ячейки.


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

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