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

Как добавлять строку в 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. Нажмите Add row to spreadsheet.

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

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

  6. Удалите содержимое поля Spreadsheet name и укажите в нем название созданной таблицы. В данном случае напишите NewSpreadsheet. Если вы дали своей таблице другое название, то напишите его.

  7. Поле Formatted row можно оставить без изменений. Оно содержит следующие параметры:

    • OccuredAt — дата и время добавления строки в таблицу. Если вы не хотите отправлять дату и время срабатывания события в таблицу, удалите этот параметр.
    • EventName — название события, которое вы создали ранее. В одну таблицу можно записывать данные с помощью разных событий. Если вы не хотите записывать в таблицу название события, удалите этот параметр.
    • Value1, Value2, Value3 — переменные, полученные ботом от пользователя в ходе диалога. Наличие хотя бы одной переменной в данном поле является обязательным.
    подсказка
    IFTTT позволяет отправлять не более трех переменных. Если нужно отправлять большее количество переменных, вы можете воспользоваться каким-либо платным аналогом сервиса IFTTT, например, Zapier.
  8. Удалите содержимое поля Drive folder path. Вместо него напишите название папки, в которой находится таблица. В данном случае напишите My folder.

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

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

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

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

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

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

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

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

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

подсказка
Если вы забыли название своего события, перейдите на главную страницу IFTTT. Вы увидите карточку своего апплета.
Если вы не меняли название апплета, он будет называться по шаблону: «If Maker Event „client_data“, then Add row to …’s Google Drive spreadsheet». Значение в кавычках и есть название вашего события — в данном примере это client_data.

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

Нажмите Test it.

Перейдите в Google Таблицу. Запись должна появиться в первой пустой строке таблицы. Каждая переменная будет записана в отдельную ячейку строки.

Строка не появилась

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

Перейдите на главную страницу IFTTT, выберите свой апплет и нажмите Settings под вашим профилем в правом верхнем углу.

На странице редактирования апплета нажмите Edit в блоке Then.

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

Строка появилась

Если строка добавилась в Google Таблицу, вернитесь на страницу тестирования вебхука.

Если ячейка с названием события очистилась, укажите его там снова.

Ниже появится ссылка на вебхук. Скопируйте и сохраните ее.

Подключение события к боту

Добавление 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 также может возникать, если в вашем тексте есть разрывы.

IFTTT может передавать только одну строку, поэтому текст клиента должен быть введен в одну строку.

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

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

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

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

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

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

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

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