Перейти к основному содержимому

Как добавлять запись в ячейку Google Таблицы с помощью IFTTT

Aimylogic поддерживает несколько способов записи данных в Google Таблицы:

Данная статья посвящена записи данных в ячейку Google Таблиц при помощи сервиса IFTTT.

Сервис IFTTT также позволяет записывать данные в строки Google Таблиц.

Настройка IFTTT

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

Для использования сервиса IFTTT в сценарии бота необходимо настроить вебхуки на стороне IFTTT. При помощи вебхуков бот будет отправлять данные на сторонний сервис.

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

  2. На главной странице IFTTT нажмите Create. Вы попадете на страницу создания апплета.

    подсказка
    Апплет — это небольшое приложение, которое интегрирует между собой несколько сервисов. Апплет включает в себя событие (триггер), запрос и действие, которое осуществляется по итогу выполнения запроса.
  3. Нажмите If This.

  4. В поиске наберите webhooks и выберите одноименный сервис.

  5. Нажмите Receive a web request.

  6. Придумайте любое название для события и напишите его в поле Event Name латинскими буквами без пробелов. Допускается использование нижних подчеркиваний. Нажмите Create trigger.

    предупреждение
    Сохраните себе название события. Оно понадобится вам в дальнейшем.

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

После создания события вы снова окажетесь на странице создания апплета.

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

  1. Нажмите Then That.

  2. Наберите в поиске sheets и выберите Google Sheets.

  3. Нажмите Update cell in spreadsheet.

  4. Зайдите на свой Google Диск и создайте в его корне папку My folder или любую другую. В этой папке создайте таблицу с названием NewSpreadsheet.

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

  6. Удалите содержимое поля Drive folder path. Вместо него укажите название папки, в которой находится таблица. В данном случае напишите My folder.

    предупреждение
    Если вы оставите поле Drive folder path пустым, IFTTT создаст на вашем Google Диске папку с названием IFTTT и поместит таблицу туда. Сервис IFTTT не может поместить таблицу в корень диска. Поэтому лучше укажите папку самостоятельно, чтобы было проще найти таблицу.
  7. Удалите содержимое поля Spreadsheet name и укажите в нем название созданной таблицы. В данном случае напишите NewSpreadsheet. Если вы дали своей таблице другое название, то напишите его.

  8. В поле Which cell? укажите название ячейки, в которую хотите записывать данные.

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

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

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

    Заполненные поля должны выглядеть подобным образом:

  10. Нажмите Create action, затем Continue.

  11. При желании отредактируйте название апплета, после чего нажмите Finish. Вы будете перенаправлены на страницу апплета.

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

Тестирование вебхука

Перейдите на страницу Webhooks и нажмите Documentation.

Откроется страница тестирования вебхука. На ней можно проверить, правильно ли вы осуществили настройку вебхука.

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

подсказка
Если вы забыли название своего события, перейдите на главную страницу IFTTT. Вы увидите карточку своего апплета.
Если вы не меняли название апплета, он будет называться по шаблону: «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.

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

предупреждение
Если вы не заполните вкладку HEADERS, запрос будет завершен с ошибкой 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.

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

подсказка
Вы можете проверить валидность своего JSON при помощи какого-либо сервиса для проверки JSON. Например, JSON Formatter.

Ошибка 400 также может возникать, если в вашем тексте есть разрывы. Текст клиента должен быть введен в одну строку.

Вы можете использовать JavaScript-выражения в блоке Условия, чтобы устранять разрывы во введенном клиентом тексте.

Изменения не поступили в сценарий

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

Остановите тестирование в тестовом виджете и снова нажмите Тестировать, чтобы изменения применились.

подсказка
Не рекомендуется тестировать одновременно несколько сценариев на разных вкладках.

Некорректное название события

Если у вас все еще не получается записать данные в ячейку Google Таблицы, проверьте, что в URL запроса верно указано название вашего события.

Проверьте название вашего события на странице апплетов IFTTT. Название события указывается в названии апплета в кавычках после «If Maker Event…». В URL запроса название события нужно указывать без кавычек и скобок.