Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 7 Следующий »

Важно - Для использования api таблица должна быть либо открыта для "всех, у кого есть ссылка", либо если нет такой возможности, то для пользователя twin-gsheets@gspread-restapi.iam.gserviceaccount.com.

Для редактирования ячеек в таблице, у этого пользователя также должны быть права редактора в настройках доступа к таблице.

Работать с запросами удобнее, если тестировать запросы при помощи онлайн-утилиты Postman, информацию по нему можно найти в статье: Инструмент для тестирования API. Postman.

Данные из таблицы можно получить после использования API запроса для чтения данных из гугл-таблицы, его описание есть в статье: Как найти строку в гугл-таблице.

  1. Для начала нужно составить запрос в блоке Запрос к серверу:

    Параметры в URL:

    1. {url}: Ссылка на гугл-таблицу.
    2. {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", "Номер строки".


  2. Для получения значения из ответа в сценарии и сохранения его в переменную, нужно использовать следующую конструкцию в настройках ветки, выходящей из блока Запрос к серверу:
    row = result.data.0.Row 
    В данном примере в переменную row сохраняется номер строки из первого элемента массива data.
    • result: Обозначает ответ от сервера.
    • data: Массив с информацией из ответа.
    • 0: Обозначает первый элемент массива, 1 обозначает второй и так далее.
    • Row: Название поля из ответа сервера, в котором содержится номер строки.


  3. Для упрощения работы с получением информации из ответа сервера, можно использовать бота для форматирования json файлов https://t.me/twin_json_bot.
    Этот бот переводит json формат, который используется в ответе от сервера в строки, которые можно использовать в блоке Запрос к серверу для получения информации из ответа сервера.

    Пример ввода в диалоге с данным ботом:
    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"
    }

    Пример ответа бота:
    JSON
    {
        "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, именно так и нужно будет записать значение переменной, присваиваемой в блоке Запрос к серверу.
  • Нет меток