Интеграция с Airtable
План вебинара:
- Подключение сообщества
- Интеграция с AirTable
- Настройка таблицы
- Создание токена для запросов
- Интеграция с Senler
- Реакция на вхождение в марафон и запись в таблицу
- Автоматическая реакция на выполнение заданий марафона
- Удаление участника из таблицы
Материалы для изучения
- Что такое ресурсы
- Список всех строковых функций Автопилота
Ниже будет конспект команд. Все остальные пункты могут вести на отдельные инструкции
Подготовка ресурса для токена AirTable
Переходим в базу данных вашего сообщества — раздел Ресурсы/База данных и создаем там новый ресурс с названием: api_key_airtable(важно использовать именно такое название для удобства дальнейшей настройки).
Чтобы при запуске команды достать поле «содержимое» этого ресурса, есть два способа:
- Точно скопировать название ресурса (
api_key_airtable).
В команде написать:{get}api_key_airtable|name|body{/get} - Точно скопировать номер ресурса (
XXXXX).
В команде написать:{get}XXXXX{/get}
Важно! Если Вы хотите хранить ресурс в одном сообществе, а использовать в другом, то необязательно использовать копирование ресурса, достаточно указать 4 параметром ID сообщества в котором хранится ресурс.
Например:
- В команде написать:
{get}api_key_airtable|name|body|183601501{/get}либо
{get}api_key_airtable|name|body|%event_club_id%{/get}Токен будем записывать в строчку в содержимое
Создаем ресурс, нажав на Еще и выбираем Ресурсы/База данныхПример ресурса на скриншоте:
Итак, создается пустой ресурс с любым названием, например,api_key_airtable,
главное записать номер ресурса, в данном примере 405155
Интеграция с AirTable
AirTable имеет ограничения на количество запросов. Более подобно написано тут:
API ограничено 5 запросами в секунду на базу данных.
Кроме того, есть лимит в 50 запросов в секунду для всего трафика, использующего персональные токены доступа от определенного пользователя или служебной учетной записи.
Если вы превысите эти лимиты, вы получите статусный код 429 и должны будете подождать 30 секунд, прежде чем последующие запросы будут выполнены успешно.
Регистрируемся на сайте по ссылке. Нажимаем «Create», создаем нужную таблицу и оформляем ее, как вам необходимо. Если будут затруднения листаем карусель.



Настройка таблицы
Настраиваем нужные ячейки. Для редактирования кликаем по ячейке и меняем название. Например: Имя: вместо Name



Кратко пробежимся по типам полей:
Single line text - однострочный текст.
Long text - длинный текст для абзацев.
Date - для записи даты
Phone number - для номера телефона
Email - для записи электронной почты
Url - для хранения ссылок
Все остальные типы интуитивно понятны. Выбрав тип не забудьте нажать «Save». Пример настроенной заполненной таблице выше.
Создание токена для запросов
Для получения токена переходим по ссылке:
Там все интуитивно понятно. Главное выбрать нужную базу в примере Автопилот и выбрать методы для записи с типом write
data.records:write
Важно! Если вы не выберете к какой базе будет иметь доступ данный токен, то он не будет работать. Базы выбираются в поле Access.
Если нужен доступ ко всем базам (на свой страх и риск) выбираем в Access
All current and future bases in all current and future workspaces
Сервис Автопилот рекомендует хранить токены в ресурсах проекта, подальше от посторонних глаз, потому что используя ваш токен можно видоизменять / удалять вашу таблицу.
Получив токен скопируйте его в блокнот и нажмите «Done»
Пример токена на скрине:
Реакция на вхождение в марафон и запись в таблицу
Событие:
1) Чтобы реагировать на подписку добавляем событие «Подписался на группу Senler» с переключателем подписался( указать конкретную группу подписки), например, у нас группа подписки номером 2805052
2) Опционально: для того, чтобы подписаться можно было только один раз добавляем условие «Выполнена команда» № 0 ровно 0 раз. Если нужна реакция на невыполнение, то нажимаем Еще → Реакция на выполнение и пишем текст, но реакция на невыполнение съест 1 милю.
Действия:
1) Для того, чтобы получить токен авторизации AirTable из ресурса добавляем временную переменную %api_key% со значением:
{get}api_key_airtable|name|body|%event_club_id%{/get}
Здесь мы говорим автопилоту, что нужно брать токен из ресурса с названием
api_key_airtable
для текущего сообщества. Если у вас сообщество не текущее, то указываете в четвертом параметре его ID.
Например:
{get}api_key_airtable|name|body|183601501{/get}2) Чтобы отправить запрос воспользуемся действием «Отправить POST / GET-запрос» на адрес таблицы и указать в заголовке токен и параметры.
В примере адрес (у вас будет свой):
https://api.airtable.com/v0/appJmhiZUBfChs6s2/Table%201
Для того, чтобы записать в ячейку таблицы Имя и Время добавляем параметры:
fields.Имя-%first_name%
fields.Время-{date}%F %X{/date}
Если у вас ячейки называются иначе, то вставьте нужное имя.
И заголовок авторизации:
Authorization-Bearer %api_key%
3) Временная переменная %air_id% = %response.id%В переменную достаем ID записи через JSON PATH. Все тесты Андрей показывает в видео.
4) Для отправки сообщения используем действие «Отправить сообщение» с текстом:
привет,%first_name%! Cпасибо за участие!
Важно! Если у вас нескольно таблиц необходимо записывать ID записи в поля с разными именами
5) Для того, чтобы записать в поле игрока at_autopilotID записи добавляем действие «Прервать / продолжить выполнение команды» c переключателем продолжено
- если переменная
%air_id%подходит под регулярку точка
6) Чтобы сохранить ID записи добавляем поле с названием, например, at_autopilot этим действием:
Важно! Всегда выводите себе переменные, как показано в видео. Иначе найти ошибку будет сложно.
Автоматическая реакция на выполнение заданий марафона
Важно! В примере команда простейшая команда на марафон. Рекомендуется скопировать команду, заменить нужные блоки копиями. Если нужны более продвинутые механики можно посмотреть эту инструкцию.
Событие:
1) Событие: «Написал комментарий» под постом (вставляем ID поста) и текстом содержащим ключевое слово, например: сдача
2) Для редактирования нужно проверить, чтобы была запущена колманда на подписку добавляем условие «Выполнена команда» № 928829 ровно 0 раз. В примере, 928829 номер команды на подписку
3) Опционально: для того, чтобы подписаться можно было только один раз добавляем условие «Выполнена команда» № 0 ровно 0 раз.
Опциально: (если вы хотите позволять редактировать комментарии) жмем «Добавить секцию» и добавляем событие: «Исправить комментарий» с ID поста
А остальные условия копируем в секцию, скопировав номер условия и вставив его по номеру.
Действия:
1) Опционально: для ответного комментария добавим действие: «Написать комментарий» с текстом:
%first_name%, спасибо задание принято
Нажимаем «Еще» → «Больше опций» → «Ответить» на комментарий
с ID: %object_id%
2) Для того, чтобы получить токен авторизации AirTable из ресурса добавляем временную переменную %api_key% со значением:
{get}api_key_airtable|name|body|%event_club_id%{/get}
3) Временная переменная %ai_id% со значением:
{fields}at_autopilot{/fields}В переменную достаем ID записи из поля игрока через функцию {fields}. Все тесты Андрей показывает в видео.
4) Чтобы отправить запрос воспользуемся действием «Отправить POST / GET-запрос» методом PATCH на адрес таблицы и указать в заголовке токен и параметры.
В примере адрес (у вас будет свой):
https://api.airtable.com/v0/appJmhiZUBfChs6s2/Table%201
Для того, чтобы редактироввть ячейку таблицы добавьте параметры
records.0.id-%at_id%records.0.fields.Задание 1-(bool)1
и заголовок авторизации:
Authorization-Bearer %api_key%
Для редактирования обращаемся к ячейкам так:
records.0.fields.Название ячейки
Главное не забудьте передать ID из поля игрока.
Важно! Всегда выводите себе переменные, как показано в видео. Иначе найти ошибку будет сложно
Удаление участника из таблицы
Важно! В примере команда аналогична первой, просто переключатели другие. Рекомендуется скопировать команду, заменить нужные блоки копиями.
Событие:
1) Чтобы реагировать на отписку добавляем событие «Подписался на группу Senler» с переключателем отписался ( указать конкретную группу подписки), например, у нас группа подписки номером 2805052
2) Опционально: для того, чтобы подписаться можно было только один раз добавляем условие «Выполнена команда» № 0 ровно 0 раз.
Действия:
1) Для того, чтобы получить токен авторизации AirTable из ресурса добавляем временную переменную %api_key% со значением:
{get}api_key_airtable|name|body|%event_club_id%{/get}
2) Временная переменная %ai_id% со значением:
{fields}at_autopilot{/fields}В переменную достаем ID записи из поля игрока через функцию {fields}. Все тесты Андрей показывает в видео.
3) Чтобы отправить запрос воспользуемся действием «Отправить POST / GET-запрос» методом DELETE на адрес таблицы и указать в заголовке токен и параметры.
В примере адрес (у вас будет свой):
https://api.airtable.com/v0/appJmhiZUBfChs6s2/Table%201?records[]=%ai_id%
Для того, чтобы удалить ячейку таблицы добавьте заголовок авторизации:
Authorization-Bearer %api_key%
4) Временная переменная %air_id% = %response.id%В переменную достаем ID записи через JSON PATH. Все тесты Андрей показывает в видео.
5) Для отправки сообщения используем действие «Отправить сообщение» с текстом:
привет,%first_name%! Жаль, что не участвуешь!
Важно! Если у вас нескольно таблиц необходимо записывать ID записи в поля с разными именами
6) Для того, чтобы удалить в поле игрока at_autopilotID записи добавляем действие «Прервать / продолжить выполнение команды» c переключателем продолжено
- если переменная
%air_id%подходит под регулярку точка
7) Чтобы удалить ID записи добавляем «Изменить поле профиля» с названием, например, at_autopilot и переключателем удалить:
Важно! Всегда выводите себе переменные, как показано в видео. Иначе найти ошибку будет сложно
Как видно выше — ничего сложного.
А если вы захотите залететь в мой клуб, то вот ссылка
Все работает идеально. Творческих взлётов и успешного внедрения!
Вопросы или пожелания можете оставлять в комментариях к этому посту.
Вернуться на главную страницу инструкций