Важно - Для использования api таблица должна быть либо открыта для "всех, у кого есть ссылка", либо если нет такой возможности, то для пользователя twin-gsheets@gspread-restapi.iam.gserviceaccount.com.
Для редактирования ячеек в таблице, у этого пользователя также должны быть права редактора в настройках доступа к таблице.
Работать с запросами удобнее, если тестировать запросы при помощи онлайн-утилиты Postman, информацию по нему можно найти в статье: Инструмент для тестирования API. Postman.
Данные из таблицы можно получить после использования API запроса для чтения данных из гугл-таблицы, его описание есть в статье: Как найти строку в гугл-таблице.
- Для начала нужно составить запрос в блоке Запрос к серверу:
- Тип запроса: GET
- URL: http://intgr.twin24.io:60061/get_data?spreadsheet_url={url}&worksheet_name={sheet}
Параметры в URL:
- {url}: Ссылка на гугл-таблицу.
- {sheet}:Название нужного листа. Если в таблице только один лист, этот параметр не обязателен.
В нашем случае запрос вернёт все данные, которые есть в таблице, так как фильтры по ячейкам и столбцам в нём не используются.
Ответ на запрос чтения информации из гугл-таблицы имеет следующий формат:Где:{ "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: Количество заполненных строк в таблице, за исключением заголовков.
- data: Массив информации из таблицы, данные в котором хранятся в формате: "Заголовок": "Значение ячейки", "Row", "Номер строки".
- Для получения значения из ответа в сценарии и сохранения его в переменную, нужно использовать следующую конструкцию в настройках ветки, выходящей из блока Запрос к серверу:
row = result.data.0.Row
В данном примере в переменную row сохраняется номер строки из первого элемента массива data.- result: Обозначает ответ от сервера.
- data: Массив с информацией из ответа.
- 0: Обозначает первый элемент массива, 1 обозначает второй и так далее.
- Row: Название поля из ответа сервера, в котором содержится номер строки.
- Для упрощения работы с получением информации из ответа сервера, можно использовать бота для форматирования json файлов https://t.me/twin_json_bot.
Этот бот переводит json формат, который используется в ответе от сервера в строки, которые можно использовать в блоке Запрос к серверу для получения информации из ответа сервера.
Пример ввода в диалоге с данным ботом:
Пример ответа бота:
Нас интересуют комментарии, в которых в начале написано слово result, именно так и нужно будет записать значение переменной, присваиваемой в блоке Запрос к серверу.