Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Предупреждение
titleВАЖНО

❌Google-таблицы НЕ предназначены для быстрой работы с большим объемом данных❌

❌Google-таблицы НЕ рекомендуется использовать для финального продукта❌

❌По работоспособности интеграции с google-таблицами НЕТ и НЕ будет никаких гарантий❌

❌По ошибка сценариев с использованием google-таблиц техническая поддержка не оказывается❌

Примечание

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

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

...

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

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

    • {url}: Ссылка на гугл-таблицу.
    • {sheet}:Название нужного листа. Если в таблице только один лист, этот параметр не обязателен.

    В нашем случае запрос вернёт все данные, которые есть в таблице, так как фильтры по ячейкам и столбцам в нём не используются.
    Ответ на запрос чтения информации из гугл-таблицы имеет следующий формат:
    Блок кода
    languagephp
    themeDJango
    {
        "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", "Номер строки".


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


  3. Далее можно использовать значение переменной, созданной в ветке из блока Запрос к серверу в сценарии по имени переменной {row}

Полезные инструменты

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

Пример ввода в диалоге с данным ботом:

Блок кода
languagephp
themeDJango
titleJSONcollapsetrue
{
    "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"
}

...

Блок кода
languagephp
themeDJango
titleJSONcollapsetrue
{
    "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
}

...