Предупреждение | ||
---|---|---|
| ||
❌Google-таблицы НЕ предназначены для быстрой работы с большим объемом данных❌ ❌Google-таблицы НЕ рекомендуется использовать для финального продукта❌ ❌По работоспособности интеграции с google-таблицами НЕТ и НЕ будет никаких гарантий❌ ❌По ошибка сценариев с использованием google-таблиц техническая поддержка не оказывается❌ |
Примечание |
---|
Важно - Для использования api таблица должна быть либо открыта для "всех, у кого есть ссылка", либо если нет такой возможности, то для пользователя twin-gsheets@gspread-restapi.iam.gserviceaccount.com. Для редактирования ячеек в таблице, у этого пользователя также должны быть права редактора в настройках доступа к таблице. |
Подсказка |
---|
Работать с запросами удобнее, если тестировать запросы при помощи онлайн-утилиты Postman, информацию по нему можно найти в статье: Инструмент для тестирования API. Postman. |
Данные из таблицы можно получить после использования API запроса для чтения данных из гугл-таблицы, Для сохранения информации в переменную нужно составить запрос на чтение данных из гугл таблицы, пример запроса и его описание есть в этой статьестатье: Как найти строку в гугл-таблице.
- Для начала нужно составить запрос в блоке Запрос к серверу:
Fancy Bullets - Тип запроса: GET
- URL: http://intgr.twin24.io:60061/get_data?spreadsheet_url={url}&worksheet_name={sheet}
Параметры в URL:
- {url}: Ссылка на гугл-таблицу.
- {sheet}:Название нужного листа. Если в таблице только один лист, этот параметр не обязателен.
В нашем случае запрос вернёт все данные, которые есть в таблице, так как фильтры по ячейкам и столбцам в нём не используются.Первым делом нужно протестировать запрос и увидеть, какой ответ возвращает сервер, для этого можно использовать онлайн утилиту Postman, информацию по нему можно найти в этой статье
Ответ на запрос чтения информации из гугл-таблицы имеет следующий формат:
Где:Блок кода language php theme DJango { "count": 4, "data": [ { "Дата": "2023-09-28", "Время": "13:00", "Row": 2 }, { "Дата": "2023-09-28", "Время": "13:30", "Row": 3 }, { "Дата": "2023-09-28", "Время": "14:00", "Row": 4 }, { "Дата": "2023-09-28", "Время": "14:30", "Row": 5 } ], "filter_used": true, "filter_headers": "Дата", "filter_values": "2023-09-28", "msg": "Ok" }
Fancy Bullets - count: количество Количество заполненных строк в таблице, за исключением заголовков.
- data: массив Массив информации из таблицы, данные в котором хранятся в формате: "Заголовок": "Значение ячейки", "Row", "Номер строки".
- Для того, чтобы получить значение получения значения из ответа в сценарии и сохранить сохранения его в переменную, нужно использовать следующую конструкцию в настройках ветки, выходящей из блока блока Запрос к серверу:
row = result.data.0.Row
В данном примере в переменную row сохраняется номер строки из первого элемента массива data.Fancy Bullets - result: обозначает Обозначает ответ от сервера.
- data: массив Массив с информацией из ответа.
- 0: обозначает Обозначает первый элемент массива, 1 обозначает второй и так далее.
- Row: название Название поля из ответа сервера, в котором содержится номер строки.
- Далее можно использовать значение переменной, созданной в ветке из блока Запрос к серверу в сценарии по имени переменной {row}
Полезные инструменты
Для упрощения работы с получением информации из ответа сервера, можно использовать бота для форматирования json
...
файлов https://t.me/twin_json_bot
...
.
Этот бот переводит json формат, который используется в ответе от сервера, в строки, которые можно использовать в
...
блоке Запрос к серверу для получения информации из ответа сервера.
Пример ввода в диалоге с данным ботом:
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"count": 4,
"data": [
{
"Дата": "2023-09-28",
"Время": "13:00",
"Row": 2
},
{
"Дата": "2023-09-28",
"Время": "13:30",
"Row": 3
},
{
"Дата": "2023-09-28",
"Время": "14:00",
"Row": 4
},
{
"Дата": "2023-09-28",
"Время": "14:30",
"Row": 5
}
],
"filter_used": true,
"filter_headers": "Дата",
"filter_values": "2023-09-28",
"msg": "Ok"
} |
Пример ответа бота:
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"count": 4, \\count | result.count
"data": [ \\data | result.data
{ \\data.0 | result.data.0
"Дата": "2023-09-28", \\data.0.Дата | result.data.0.Дата
"Время": "13:00", \\data.0.Время | result.data.0.Время
"Row": 2 \\data.0.Row | result.data.0.Row
},
{ \\data.1 | result.data.1
"Дата": "2023-09-28", \\data.1.Дата | result.data.1.Дата
"Время": "13:30", \\data.1.Время | result.data.1.Время
"Row": 3 \\data.1.Row | result.data.1.Row
},
{ \\data.2 | result.data.2
"Дата": "2023-09-28", \\data.2.Дата | result.data.2.Дата
"Время": "14:00", \\data.2.Время | result.data.2.Время
"Row": 4 \\data.2.Row | result.data.2.Row
},
{ \\data.3 | result.data.3
"Дата": "2023-09-28", \\data.3.Дата | result.data.3.Дата
"Время": "14:30", \\data.3.Время | result.data.3.Время
"Row": 5 \\data.3.Row | result.data.3.Row
}
],
"filter_used": true, \\filter_used | result.filter_used
"filter_headers": "Дата", \\filter_headers | result.filter_headers
"filter_values": "2023-09-28", \\filter_values | result.filter_values
"msg": "Ok" \\msg | result.msg
} |
Напротив каждой строки есть комментарии.
Нас интересуют комментарии, в которых в начале написано слово result, именно так и нужно будет записать значение переменной, присваиваемой в блоке Запрос к серверу.