Чтение данных из Google Таблиц
Вы можете хранить информацию в Google Таблицах и использовать ее по мере необходимости. Чтобы читать данные из Google Таблиц, вам нужно воспользоваться блоком HTTP-запрос. Aimylogic позволяет боту получить все данные из таблицы на Google Drive в виде JSON-объекта, с которым потом можно работать в сценарии.
Как читать данные из Google Таблиц?
Если в вашей Google Таблице есть данные, разделенные точкой или запятой — например, даты, такие как 03.04 или 05.12 — то пропустите раздел про создание таблицы и получение ссылки, а следуйте инструкции по конвертации таблиц из формата CSV в JSON. Затем переходите к разделу про добавление HTTP-запроса.
Создание таблицы
Создайте Google Таблицу и оформите ее соответственно вашей задаче. Опубликуйте таблицу: Файл → Поделиться → Опубликовать в интернете → Опубликовать.
Путь из всплывающего окна копировать не нужно. Закройте всплывающее окно.
Публиковать страницу нужно только один раз. Вам не нужно снова публиковать страницу после внесения в нее изменений.
Также вам необходимо разрешить доступ к таблице по ссылке: для этого нажмите кнопку Настройки доступа в правом верхнем углу страницы, затем в модальном окне кликните Разрешить доступ всем, у кого есть ссылка. Таблица должна быть доступна для чтения. Чтобы завершить настройку, нажмите Готово.
Получение ссылки
Откройте блокнот и скопируйте туда ссылку, которая должна иметь следующий вид:
https://tools.aimylogic.com/api/googlesheet2json?sheet=<название_листа>&id=<id_таблицы>
- Параметр
<id_таблицы>
вы можете получить из URL таблицы.
Скопируйте его и вставьте в ссылку выше после id=
.
- Параметр
<название_листа>
указан внизу таблицы на вкладке листа таблицы.
Скопируйте его и вставьте в ссылку выше после sheet=
.
Если вам нужно получить данные из листа с именем Лист1 из таблицы с указанным выше URL, то ссылка будет выглядеть так:
https://tools.aimylogic.com/api/googlesheet2json?sheet=Лист1&id=1GaCjqsFRk7ZItwIiPzGaYuG04wU9qrzdvMWnm4cxvMI
Вы можете проверить, все ли сделали правильно, если вставите получившуюся ссылку в строку браузера. В результате вы должны увидеть содержание таблицы в виде JSON-массива.
Если в одном сценарии вам необходимо обращаться к разным листам таблицы, нужно будет создавать для этих целей разные HTTP-запросы. Один HTTP-запрос может получать данные только из какого-либо одного листа таблицы.
Добавление HTTP-запроса к таблице
Создайте в сценарии блок HTTP-запрос и вставьте в поле URL то, что скопировали из блокнота.
Оформите остальные поля HTTP-запроса соответственно вашей задаче.
В результате выполнения HTTP-запроса сервис вернет массив. Каждый элемент массива — объект JSON с полями, соответствующими названию колонок в вашей таблице. Далее в рамках сценария вы можете получать из него данные, используя соответствующий синтаксис.
[
{
"Артикул":657486,
"Название":"Товар 1",
"Цена":1500,
"Количество":5
},
{
"Артикул":386756,
"Название":"Товар 2",
"Цена":4560,
"Количество":2
},
{
"Артикул":396735,
"Название":"Товар 3",
"Цена":1200,
"Количество":11
},
{
"Артикул":874533,
"Название":"Товар 4",
"Цена":3520,
"Количество":8
}
]
Как читать данные из разных таблиц?
Вы можете читать данные из разных Google Таблиц в зависимости от ветки сценария. Для этого вам не нужно создавать несколько экранов с HTTP-запросами.
Вы можете использовать переменные, чтобы передавать разные URL таблиц.
Например, если выбор таблицы должен зависеть от того, какую кнопку нажмет клиент, вы можете сохранить его выбор в переменную при помощи блока text to $var
.
Добавьте в сценарий блок
text to $var
.От перехода после ввода клиента создайте экран с блоком Условия и запишите в него условия с идентификаторами таблиц, используя условный оператор. Например:
$id = ($sheet == "Таблица 1") ? "1-4ZlVWhzYEAjSu167H1mb6J4HMWKkBkj4pgMzuKEIzU" : false
$id = ($sheet == "Таблица 2") ? "1-4ZlVWhzYEAjSu167H1mb6J4HMWKkBkj4pgMzudlH7q" : false
$id = ($sheet == "Таблица 3") ? "1jUN8g5SRPEGKhs0lULQoOUHeXV6bB9_sD6WLGn7QVv4" : false
Каждое условие свяжите с новым экраном с блоком HTTP-запрос.
В поле URL HTTP-запроса укажите:
https://tools.aimylogic.com/api/googlesheet2json?sheet=Лист1&id=${id}
Пример сценария:
Как записывать данные в таблицы?
Если вы хотите производить запись в таблицы, воспользуйтесь сервисом IFTTT.
При необходимости записать что-либо в таблицу следуйте инструкции по использованию сервиса IFTTT.
При необходимости получить какие-либо данные из таблицы следуйте данной инструкции по чтению данных из Google Таблиц.
Возможные неполадки
Ошибка -1
- Ошибка в синтаксисе. Возможно, в поле URL HTTP-запроса присутствует пробел либо какие-либо другие лишние символы. Повторите инструкцию внимательно с самого начала.
- Возможно, вы неправильно заполнили другие поля HTTP-запроса, например, поле BODY. Обратитесь к урокам в конце статьи, чтобы увидеть примеры чтения данных из Google Таблиц на реальных кейсах.
Ошибка 404
- Убедитесь, что вы опубликовали страницу. Повторите шаг создание таблицы.
- Убедитесь, что вы правильно получили идентификатор документа. Вернитесь к шагу получение ссылки и повторите его. Обратите внимание, что после того, как вы опубликовали страницу, возникает всплывающее окно и вам предлагают скопировать путь. Копировать путь не нужно и не нужно пытаться достать идентификатор документа из всплывающего окна.
- Попробуйте вставить полную ссылку в строку браузера. Если вы все сделали правильно, то вы должны увидеть содержание таблицы в виде JSON-массива.
Уроки
Предлагаем вам ознакомиться со статьями, в которых рассматривается чтение данных из Google Таблиц: