Как добавлять запись в ячейку Google Таблицы с помощью IFTTT
Aimylogic поддерживает несколько способов записи данных в Google Таблицы:
- при помощи блока Интеграция с Google Таблицами;
- при помощи HTTP-запросов;
- через использование сервиса IFTTT.
Данная статья посвящена записи данных в ячейку Google Таблиц при помощи сервиса IFTTT.
Сервис IFTTT также позволяет записывать данные в строки Google Таблиц.
Настройка IFTTT
Добавление вебхука и события
Для использования сервиса IFTTT в сценарии бота необходимо настроить вебхуки на стороне IFTTT. При помощи вебхуков бот будет отправлять данные на сторонний сервис.
-
Зарегистрируйтесь в сервисе IFTTT или войдите в свой аккаунт.
-
На главной странице IFTTT нажмите Create. Вы попадете на страницу создания апплета.
подсказкаАпплет — это небольшое приложение, которое интегрирует между собой несколько сервисов. Апплет включает в себя событие (триггер), запрос и действие, которое осуществляется по итогу выполнения запроса. -
Нажмите If This.
-
В поиске наберите
webhooks
и выберите одноименный сервис. -
Нажмите Receive a web request.
-
Придумайте любое название для события и напишите его в поле Event Name латинскими буквами без пробелов. Допускается использование нижних подчеркиваний. Нажмите Create trigger.
предупреждениеСохраните себе название события. Оно понадобится вам в дальнейшем.
Создание действия
После создания события вы снова окажетесь на странице создания апплета.
Теперь нужно добавить действие, которое будет осуществляться после вызова вебхука. В данном случае это отправка данных клиента в Google Таблицу.
-
Нажмите Then That.
-
Наберите в поиске sheets и выберите Google Sheets.
-
Нажмите Update cell in spreadsheet.
-
Зайдите на свой Google Диск и создайте в его корне папку My folder или любую другую. В этой папке создайте таблицу с названием NewSpreadsheet.
-
Вернитесь на вкладку с IFTTT. Сейчас у вас открыта страница настройки сервиса Google Таблиц.
-
Удалите содержимое поля Drive folder path. Вместо него укажите название папки, в которой находится таблица. В данном случае напишите
My folder
.предупреждениеЕсли вы оставите поле Drive folder path пустым, IFTTT создаст на вашем Google Диске папку с названием IFTTT и поместит таблицу туда. Сервис IFTTT не может поместить таблицу в корень диска. Поэтому лучше укажите папку самостоятельно, чтобы было проще найти таблицу. -
Удалите содержимое поля Spreadsheet name и укажите в нем название созданной таблицы. В данном случае напишите
NewSpreadsheet
. Если вы дали своей таблице другое название, то напишите его. -
В поле Which cell? укажите название ячейки, в которую хотите записывать данные.
предупреждениеУказывайте только одну ячейку. Если вы укажете несколько ячеек, событие не будет работать. -
В поле Value добавьте значения, которые вы хотите отправлять в ячейку. Нажмите Add ingredient под полем Value и добавьте значение.
- Обязательно добавьте переменные: Value1, Value2 и Value3.
- Если вы хотите, чтобы IFTTT добавлял в ячейку название события, дополнительно добавьте EventName.
- Если вы хотите, чтобы IFTTT добавлял время срабатывания события, дополнительно добавьте OccurredAt.
Все выбранные значения будут занесены в одну ячейку и разделены пробелами.
Заполненные поля должны выглядеть подобным образом:
-
Нажмите Create action, затем Continue.
-
При желании отредактируйте название апплета, после чего нажмите Finish. Вы будете перенаправлены на страницу апплета.
Теперь, когда бот отправит HTTP-запрос на настроенный вебхук, IFTTT возьмет переменные из этого запроса и автоматически добавит их в ячейку вашей таблицы.
Тестирование вебхука
Перейдите на страницу Webhooks и нажмите Documentation.
Откроется страница тестирования вебхука. На ней можно проверить, правильно ли вы осущ ествили настройку вебхука.
Вместо {event}
напишите название своего события без скобок, кавычек и пробелов.
Если вы не меняли название апплета, он будет называться по шаблону: «If Maker Event „client_data“, then Update a cell in …’s Google Drive spreadsheet». Значение в кавычках и есть название вашего события — в данном примере это
client_data
.В пропусках value1, value2 и value3 напишите любые значения, например, числа. Это будут значения ваших переменных.
Нажмите Test it.
Перейдите в Google Таблицу и проверьте, появилась ли запись в ячейке.
Запись не появилась
Если запись в ячейке не появилась, возможно, вы указали другое название таблицы или папки в настройках апплета, и IFTTT создал для вас другую таблицу.
Перейдите на главную страницу IFTTT, выберите свой апплет и нажмите Settings под вашим профилем в правом верхнем углу.
На странице редактирования апплета нажмите Edit в блоке Then.
Проверьте, правильно ли вы указали название таблицы и название папки. Содержимое полей должно совпадать с названиями таблицы и папки, которые находятся у вас на Google Диске.
Также убедитесь, что вы указали только одну ячейку.
Запись появилась
Если запись появилась в ячейке Google Таблицы, вернитесь на страницу тестирования вебхука.
Если ячейка с названием события очистилась, укажите его там снова.
Ниже появится ссылка на вебхук. Скопируйте и сохраните ее.
Подключение события к боту
Теперь нужно добавить блок HTTP-запрос в сценарий. Через него бот отправит запрос на адрес вебхука в вашем событии и передаст в запросе нужные данные.
Добавление HTTP-запроса
Перейдите в сценарий вашего бота в Aimylogic.
Чтобы передать данные в таблицу, нужно записать их в какую-либо переменную. Для этого добавьте блок $text to var
и напишите переменную $message
. Все что клиент напишет на данном экране, будет помещено в эту переменную.
Свяжите ветку Переход после ввода $message с блоком HTTP-запрос.
Заполните поля блока:
- В качестве метода выберите
POST
. - В поле URL вставьте адрес вебхука, который вы скопировали ранее.
- Вкладку RESPONSE оставьте без изменений.
- На вкладке BODY укажите следующий JSON:
{
"value1": "$message"
}
Если в будущем вы захотите передавать три переменные, то прописывайте названия всех переменных, которые присутствуют в вашем сценарии. Например:
{
"value1": "$message",
"value2": "$address",
"value3": "$quantity"
}
На вкладке HEADERS нажмите + Имя заголовка и значение и добавьте заголовок Content-Type
со значением application/json
.
Нажмите Сохранить.
400
.Добавление связей
От варианта Завершен с ошибкой сделайте связь с текстовым блоком: ошибка отправки $httpStatus
.
$httpStatus
содержит код ответа HTTP.От варианта Завершен успешно сделайте связь с еще одним текстовым блоком: Ваши данные отправлены.
Теперь бот отправит введенные клиентом данные в ячейку Google Таблицы через IFTTT, когда дойдет до HTTP-за проса в сценарии.
Таким образом вы можете передавать данные из бота в любые сервисы, которые поддерживаются IFTTT.
Тестирование сценария
Нажмите Тестировать и напишите боту любое сообщение одной строкой без разрывов:
Проверьте, добавился ли данный текст в Google Таблицу.
Пример заполненной ячейки:
Возможные ошибки
Если запрос выполняется с ошибкой, проверьте корректность заполнения его полей:
- В запросе выбран метод
POST
. - На вкладке HEADERS указан заголовок
Content-Type
со значениемapplication/json
.
Ошибка -1
Если вы видите ошибку -1
, убедитесь в отсутствии:
- пробелов в URL HTTP-запроса;
- фигурных скобок в названии события.
Ошибки 400 и 404
Если вы видите ошибку 404
, HTTP-запрос оформлен неправильно.
Если вы видите ошибку 400
, вы также неправильно оформили HTTP-запрос. Обратите внимание на вкладку BODY и синтаксис вашего JSON.
Например, ошибка может возникнуть, если в теле запроса вы используете и одинарные ' '
, и двойные " "
кавычки.
Ошибка 400
также может возникать, если в вашем тексте есть разрывы. Текст клиента должен быть введен в одну строку.
Вы можете использовать JavaScript-выражения в блоке Условия, чтобы устранять разрывы во введенном клиентом тексте.
Изменения не поступили в сценарий
Если вы отредактировали сценарий и продолжаете его тестировать, но данные не записываются в ячейку, значит, в ваш сценарий не поступили изменения.
Остановите тестирование в тестовом виджете и снова нажмите Тестировать, чтобы изменения применились.
Некорректное название события
Если у вас все еще не получается записать данные в ячейку Google Таблицы, проверьте, что в URL запроса верно указано название вашего события.
Проверьте название вашего события на странице апплетов IFTTT. Н азвание события указывается в названии апплета в кавычках после «If Maker Event…». В URL запроса название события нужно указывать без кавычек и скобок.