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

Чтение данных из Google Таблиц

подсказка
Для подключения интеграции используйте готовый блок Интеграция с 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-запроса соответственно вашей задаче.

В результате выполнения HTTP-запроса сервис вернет массив. Каждый элемент массива — объект JSON с полями, соответствующими названию колонок в вашей таблице. Далее в рамках сценария вы можете получать из него данные, используя соответствующий синтаксис.

[
{
"Артикул":657486,
"Название":"Товар 1",
"Цена":1500,
"Количество":5
},
{
"Артикул":386756,
"Название":"Товар 2",
"Цена":4560,
"Количество":2
},
{
"Артикул":396735,
"Название":"Товар 3",
"Цена":1200,
"Количество":11
},
{
"Артикул":874533,
"Название":"Товар 4",
"Цена":3520,
"Количество":8
}
]

Как читать данные из разных таблиц?

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

Вы можете использовать переменные, чтобы передавать разные URL таблиц.

Например, если выбор таблицы должен зависеть от того, какую кнопку нажмет клиент, вы можете сохранить его выбор в переменную при помощи блока text to $var.

  1. Добавьте в сценарий блок text to $var.

  2. От перехода после ввода клиента создайте экран с блоком Условия и запишите в него условия с идентификаторами таблиц, используя условный оператор. Например:

  • $id = ($sheet == "Таблица 1") ? "1-4ZlVWhzYEAjSu167H1mb6J4HMWKkBkj4pgMzuKEIzU" : false

  • $id = ($sheet == "Таблица 2") ? "1-4ZlVWhzYEAjSu167H1mb6J4HMWKkBkj4pgMzudlH7q" : false

  • $id = ($sheet == "Таблица 3") ? "1jUN8g5SRPEGKhs0lULQoOUHeXV6bB9_sD6WLGn7QVv4" : false

  1. Каждое условие свяжите с новым экраном с блоком HTTP-запрос.

  2. В поле URL HTTP-запроса укажите:

    https://tools.aimylogic.com/api/googlesheet2json?sheet=Лист1&id=${id}

Пример сценария:

Как записывать данные в таблицы?

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

При необходимости записать что-либо в таблицу следуйте инструкции по использованию сервиса IFTTT.

При необходимости получить какие-либо данные из таблицы следуйте данной инструкции по чтению данных из Google Таблиц.

Возможные неполадки

Ошибка -1

  • Ошибка в синтаксисе. Возможно, в поле URL HTTP-запроса присутствует пробел либо какие-либо другие лишние символы. Повторите инструкцию внимательно с самого начала.
  • Возможно, вы неправильно заполнили другие поля HTTP-запроса, например, поле BODY. Обратитесь к урокам в конце статьи, чтобы увидеть примеры чтения данных из Google Таблиц на реальных кейсах.

Ошибка 404

  • Убедитесь, что вы опубликовали страницу. Повторите шаг создание таблицы.
  • Убедитесь, что вы правильно получили идентификатор документа. Вернитесь к шагу получение ссылки и повторите его. Обратите внимание, что после того, как вы опубликовали страницу, возникает всплывающее окно и вам предлагают скопировать путь. Копировать путь не нужно и не нужно пытаться достать идентификатор документа из всплывающего окна.
  • Попробуйте вставить полную ссылку в строку браузера. Если вы все сделали правильно, то вы должны увидеть содержание таблицы в виде JSON-массива.

Уроки

Предлагаем вам ознакомиться со статьями, в которых рассматривается чтение данных из Google Таблиц: