Google Sheets API/Гугл таблицы API

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
Здравствуйте. Эта статья написана новичком и рассчитана для новичков.

На форуме есть достаточно тем, где используют или спрашивают как использовать Google Sheets API для работы с Google Таблицами. Но новичкам, а также и уже опытным пользователем все равно не удается до конца разобраться с этой "проблемой". Я решил в силу своих возможностей немного помочь и тем, и тем. Я только изучил азы, так что любой желающий может дополнять тему новыми "вкусностями", которые изучил.

Огромное спасибо @Astraport, за замечательную статью, которая помогла мне начать изучение Google Таблиц.

Начнем.
Официальная документация Google.
I. Настройки аккаунта Google с которого будем работать.
  • Переходим по ссылке и активируем API для Google Таблиц, если не активирован.
Google_Sheets_API_1.png

Google_Sheets_API_3.png

Google_Sheets_API_2.png

  • После создание, переходим к маленькой настройке API.
Google_Sheets_API_4.png

  • Называем наше приложение и нажимает на кнопку "Add Scope" или "Добавить область действия". Ставим галочку напротив работы с Google Sheets API.
Google_Sheets_API_5.png
Google_Sheets_API_6.png

  • Добавляем нужную правку и сохраняем.
  • Теперь создаем сам "ключ авторизации". Нажимаем на кнопку "Создать учетные данные" и выбираем "Идентификатор клиента OAuth.
Google_Sheets_API_7.png

  • Выбираем галочку "Другие" и называем наш OAuth.
Google_Sheets_API_8.png

  • После нажимаем OK. Обратите внимание, что (насколько я понял) разрешено 100 авторизаций через этот "ключ" (поправьте если не так), потом будет какой-то косяк.
Google_Sheets_API_9.png

  • Сохраняем на компьютер созданный "ключ".
Google_Sheets_API_10.png

  • На этом настройке в кабинете закончена.
P.S. Если нужно принять какие-то соглашения, то принимайте. А также возможно это не все хитрости использования API, но вроде этого хватает.

II. Теперь переходим к получению токена, для работы с Google Sheets.
Тут все гораздо проще.
  • Качаем шаблон для получения токена (прикреплен к теме).
  • Указываем входящие настройки. В настройках указываем путь к файлу, который скачали, а также способ авторизации: через профиль или логин с паролем.
Google_Sheets_API_11.png

  • Запускаем его.
По умолчанию шаблон создаст в корневом каталоге профиль (сохраняет только cookies), для возможной следующей авторизации. А также файл с Refresh Token, в том же корневом каталоге. Для чего он нужен я напишу далее.
Сам шаблон выглядит так:
Google_Sheets_API_12.png

III. Самое вкусное. Взаимодействие с Google Sheet.
В предыдущем шаблоне мы получили refresh_token.txt. Зачем этот Refresh Token? С помощью него мы будем получать Access Token - именно он нужен для взаимодействия с Google Sheet. Сложно? "Слегка".

Шаблон с примерами прикреплен.

Кратко о API:
  • для получения значений используются get-запросы;
  • для внесения изменений используются post-запросы;
  • также есть put-запросы, но они реализованы только с помощью кода - не подходит;
  • для получения access токена используется post-запрос;
  • работать нужно в основном с json форматом.
1. Получение Access Token:
  1. Первый Access Token мы получаем при получении Refresh Token. Его можно также использовать. (Я не знаю лимиты этих токенов, если кто подскажет, буду рад)
  2. Сам POST запрос на получения Acces Token'а выглядит так:
Google_Sheets_API_1.png

client_id={-Variable.Client_id-}&client_secret={-Variable.Client_secret-}&refresh_token={-Variable.Refresh_token-}&grant_type=refresh_token

Url-token - это https://oauth2.googleapis.com/token, url для получения токена (он присутствует в скачанном файле);
Client_id и Client_secret - это данные с файла, если не интересно, то можете не вникать;
Refresh_token - сам refresh токен, для получения acess токена.


2. Получение значений из таблицы.
Для получения какого-либо значения из таблицы, нужно использовать get-запрос:
Код:
https://sheets.googleapis.com/v4/spreadsheets/{-Variable.Sheet-}/values/{-Variable.Sheet_Name-}!A1:A2?access_token={-Variable.Access_token-}
  • Sheet - это ID таблица. Его можно найти тут:
    Google_Sheets_API_2.png
    ;
  • ID листа находится после слова "gid". Его также будем при надобности использовать;
  • Sheet_Name - название листа;
  • A1:A2 - диапазон ячеек, с которых брать значения;
  • Access_token - токен для доступа к таблице.
Ответ приходит в json формате:
Код:
{
  "range": "'Лист1'!A1:A2",
  "majorDimension": "ROWS",
  "values": [
    [
      "asd"
    ],
    [
      "2"
    ]
  ]
}
Для удобного просмотра советую использовать специальный блок "Обработка JSON/XML".

3. Получение всех параметров ячейки.
Используем get-запрос.
Код:
https://sheets.googleapis.com/v4/spreadsheets/{-Variable.Sheet-}?ranges='{-Variable.Sheet_name-}'!A1&includeGridData=true&access_token={-Variable.Access_token-}
Ответ приходит такой:
Код:
{
  "spreadsheetId": "айди моей таблицы",
  "properties": {
    "title": "Новая таблица",
    "locale": "ru_RU",
    "autoRecalc": "ON_CHANGE",
    "timeZone": "моя тайм зона",
    "defaultFormat": {
      "backgroundColor": {
        "red": 1,
        "green": 1,
        "blue": 1
      },
      "padding": {
        "top": 2,
        "right": 3,
        "bottom": 2,
        "left": 3
      },
      "verticalAlignment": "BOTTOM",
      "wrapStrategy": "OVERFLOW_CELL",
      "textFormat": {
        "foregroundColor": {},
        "fontFamily": "arial,sans,sans-serif",
        "fontSize": 10,
        "bold": false,
        "italic": false,
        "strikethrough": false,
        "underline": false
      }
    }
  },
  "sheets": [
    {
      "properties": {
        "sheetId": 0,
        "title": "Лист1",
        "index": 0,
        "sheetType": "GRID",
        "gridProperties": {
          "rowCount": 1000,
          "columnCount": 26
        }
      },
      "data": [
        {
          "rowData": [
            {
              "values": [
                {
                  "userEnteredValue": {
                    "stringValue": "asd"
                  },
                  "effectiveValue": {
                    "stringValue": "asd"
                  },
                  "formattedValue": "asd",
                  "userEnteredFormat": {
                    "backgroundColor": {
                      "red": 1,
                      "green": 0.6
                    },
                    "textFormat": {
                      "foregroundColor": {}
                    }
                  },
                  "effectiveFormat": {
                    "backgroundColor": {
                      "red": 1,
                      "green": 0.6
                    },
                    "padding": {
                      "top": 2,
                      "right": 3,
                      "bottom": 2,
                      "left": 3
                    },
                    "horizontalAlignment": "LEFT",
                    "verticalAlignment": "BOTTOM",
                    "wrapStrategy": "OVERFLOW_CELL",
                    "textFormat": {
                      "foregroundColor": {},
                      "fontFamily": "arial,sans,sans-serif",
                      "fontSize": 10,
                      "bold": false,
                      "italic": false,
                      "strikethrough": false,
                      "underline": false
                    },
                    "hyperlinkDisplayType": "PLAIN_TEXT"
                  }
                }
              ]
            }
          ],
          "rowMetadata": [
            {
              "pixelSize": 21
            }
          ],
          "columnMetadata": [
            {
              "pixelSize": 289
            }
          ]
        }
      ]
    }
  ],
  "spreadsheetUrl": "https://docs.google.com/spreadsheets/d/айди моей таблицы/edit"
}

4. Удаление ячейки.
Ячейку будем удалять уже Post-запросом. Выглядит он так:
Google_Sheets_API_3.png

Вот тут уже и используем ID листа, с которым будем работать.

https://sheets.googleapis.com/v4/spreadsheets/{-Variable.Sheet-}:batchUpdate?access_token={-Variable.Access_token-}

{
requests:[{
deleteRange:{
range:{
sheetId:0,
startRowIndex:1,
endRowIndex:2,
startColumnIndex:0,
endColumnIndex:1
},
shiftDimension:"ROWS"
}
}]
}

5. Добавить текст в ячейку.
Используем Post-запрос. С помощью него можно также записывать значения сразу в несколько ячеек.
Google_Sheets_API_4.png

{
"valueInputOption": "USER_ENTERED",
"data": [
{
"range": "Лист1!A1",
"majorDimension": "ROWS",
"values": [['Тест']]
}
]
}

6. Изменить параметры ячейки.
Изменяем таким Post-запросом.
Google_Sheets_API_5.png

{
"requests":
[
{
"repeatCell": {
"range": {
"sheetId": 0,
"startRowIndex": 1,
"endRowIndex": 2,
"startColumnIndex": 0,
"endColumnIndex": 1
},
"cell": {
"userEnteredFormat": {
"backgroundColor": {
"red": 0.0,
"green": 1.0,
"blue": 0.0
},
"textFormat": {
"bold": true
}
}
},
"fields": "userEnteredFormat(backgroundColor, textFormat)"
}
}
]
}

В заключение.
Для того, чтоб подстроить эти запросы под свои нужды, нужно хорошо поработать головой. Разбирать как работает json формат и как работает каждый запрос я не буду (это очень долго). Могу лишь дать пару рекомендаций в какую сторону двигаться.

Двигаться нужно на этой страничке:
  • Советую использовать две странички из документации: Reference и Samples;
  • Разбирать использования двух запросов: batchUpdate и get. Их я думаю вам будет вполне хватать. Но если вы желаете полностью погрузится в Google Sheets API, то разбирайте;
Google_Sheets_API_6.png

  • Внимательно изучайте примеры и не брезгуйте пользоваться поисковиком;
  • Google Переводчик в помощь.
Вот статья подошла к концу. Она будет безусловно дополнятся.
Надеюсь основные моменты я расписал и чуточку облегчил познание Google Sheets API.

P.S. Это аматорская статья. Я не знаю всех аспектов работы с Google API. Я описал только то, что у меня работало и привело к результату. Если у вас что-то не получается, то не кидайте в меня камнями, а лучше опишите что не получается. Я и пользователи форума попробуют вам помочь.
 
Категория
Полезно

Вложения

Для запуска проектов требуется программа ZennoPoster.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте программу ZennoPoster. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

Последнее редактирование:

Gor

Client
Регистрация
30.09.2016
Сообщения
248
Благодарностей
30
Баллы
28
Спасибо, добрый человек! Второй день курю документацию по Google Sheets, не могу понять где у змея Урробороса хвост. У тебя понятнее вроде, буду разбираться ))
 

Gor

Client
Регистрация
30.09.2016
Сообщения
248
Благодарностей
30
Баллы
28
Все работает, все супер! Разобраться только надо как для меня. Благодарствую премного, красавчег!
 

serg1208

Client
Регистрация
17.04.2018
Сообщения
331
Благодарностей
15
Баллы
18
молодчага!!
 

serg1208

Client
Регистрация
17.04.2018
Сообщения
331
Благодарностей
15
Баллы
18
а можно узнать, как найти переменную Url_token и url_auth ? Спасибо
 

serg1208

Client
Регистрация
17.04.2018
Сообщения
331
Благодарностей
15
Баллы
18
просто здесь выдает пустоту
upload_2019-5-10_18-6-28.png
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
Проверьте, пожалуйста, выбрали ли вы в настройках файл с расширением .json, который скачали предварительно. Его нужно выбрать также, как и в первом шаблоне, при получении Refrsh токена.
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
Приятное дополнение тем, кто хочет работать с Google Drive, но не может.
https://zennolab.com/discussion/threads/problemy-pri-rabote-s-google-tabs.59782/#post-435997
Если нужно скачивать какие-то другие файлы, то внимательно прочитайте документацию Google.
Чтоб правильно составить запрос, посмотрите, что вам нужно скачивать: таблицу, файл или что-то другое.
Если вы сохраняете DOC файлы, то поменяйте значения параметра mimeType в соответствии с таблицей на страничке с документацией.
3.png
 
Последнее редактирование:
  • Спасибо
Реакции: Hannes

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
Также есть хорошая новость для тех, кто хочет в полной мере использовать сервисы Google на полную (что касается API).
Если я не закончу свои приключения с ZennoPoster до следующей конкурсной статьи, то обязательно постараюсь сделать максимально подробный "Гайд" на большинство сервисов Google, которые поддерживают API. Сервисы буду выбирать по своему усмотрению, что мне понравится, над тем и буду работать. Если у вас к тому времени будут "особые" требования к API, то буду рад "помочь" вам в решении вопроса.

Скорее всего также напишу как можно проще плагины/шаблоны/сниппеты для взаимодействия с Google API (возможно будут символически платными).

Прием заявок на реализацию ваших потребностей смогу принимать не раньше августа.

Всем спасибо за внимание.
 

YuriiL

Новичок
Регистрация
15.05.2019
Сообщения
25
Благодарностей
3
Баллы
3
Если у Вас есть время и возможность, то не могли бы Вы прояснить некоторые вопросы, которые возникли у меня во время использования Ваших шаблонов.
1. После каждого действия необходимо обновлять токен?
2. Для чего нужен блок IF ('{-Json.error.status-}' == 'UNAUTHENTICATED')?
3. Блок "Берем значения"? Получил результат в виде кода Json. Спарсил его. Чтобы получить значение ячейки теперь нужно регуляркой вытащить его со спарсенного кода?
4. Блок "Добавляем свое значение". Я так понял в коде "range": "Лист1!A1", заменяем Лист1 на название своего листа в таблице, А1 на свою ячейку, "values": [['Тест']], Тест на свое значение? Я так пробовал и не добавилось.
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
Если у Вас есть время и возможность, то не могли бы Вы прояснить некоторые вопросы, которые возникли у меня во время использования Ваших шаблонов.
1. После каждого действия необходимо обновлять токен?
2. Для чего нужен блок IF ('{-Json.error.status-}' == 'UNAUTHENTICATED')?
3. Блок "Берем значения"? Получил результат в виде кода Json. Спарсил его. Чтобы получить значение ячейки теперь нужно регуляркой вытащить его со спарсенного кода?
4. Блок "Добавляем свое значение". Я так понял в коде "range": "Лист1!A1", заменяем Лист1 на название своего листа в таблице, А1 на свою ячейку, "values": [['Тест']], Тест на свое значение? Я так пробовал и не добавилось.
1. Токен обновлять каждый раз не надо. Нужно почитать про лимиты использования acess_token'a. Я не задавался целью это выяснить, работает и работает)) Если токен живет сутки, то тогда можно сделать отдельный шаблон, который будет обновлять его ровно раз в сутки и т.п.
2. Если по каким-то причинам токен не действительный, то и идет это проверка (это я взял у @Astraport, может также можно проще все сделать). При отказе в доступе к таблице, обновляем токен, чтоб не нарушилась работа с таблицей.
3. Ответ всегда приходит в Json формате. Используете кубик "Парсинг JSON". Нужные данные находятся в окне с переменными. Чтоб взять нужную переменную, пропишите {-Json.Ваша переменная-} (кроме кода). Более подробней почитайте на форуме и в документации программы. И да, значение находится в одной из этих переменных. Если значение ячейки пустое, то переменной со значением в json не будет.
4. Название листа и ячейки вы используете также, как и в формулах Excel - Названиелиста!Диапаозон:ячеек. Следующий пункт (majorDimension), это в каком порядке вводить значения (в строку или в столбик). А сами значения нужно вводить в скобках первых []. Подробнее почитайте тут.
 
  • Спасибо
Реакции: YuriiL

YuriiL

Новичок
Регистрация
15.05.2019
Сообщения
25
Благодарностей
3
Баллы
3
2. Я когда использую Ваш шаблон вот на этом блоке выходит остановка. Я так понимаю необходимо из этого блока по значению False сделать соединение с следующими блоками, которые нужно выполнить?
3. Если написать {-Json.values-} то получаем все равно не чистое значение, а
[
[
"ADS"
]
]
и уже дальше я так понимаю регуляркой обрезать?
4. Использую Ваш готовый шаблон

{

"valueInputOption": "USER_ENTERED",

"data": [

{

"range": "Лист1!E2",

"majorDimension": "ROWS",

"values": [['Тест']]

}

]

}

Лист такой в таблице есть, она совершенно пустая. Но значение Тест не добавляется. Ошибок при выполнении нет.
 

YuriiL

Новичок
Регистрация
15.05.2019
Сообщения
25
Благодарностей
3
Баллы
3
Методом тыка и изучения значение переменной Result нашел проблему. Все таки это токен был не действительный, а значит на много попыток его не хватает
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
2. Я когда использую Ваш шаблон вот на этом блоке выходит остановка. Я так понимаю необходимо из этого блока по значению False сделать соединение с следующими блоками, которые нужно выполнить?
3. Если написать {-Json.values-} то получаем все равно не чистое значение, а
[
[
"ADS"
]
]
и уже дальше я так понимаю регуляркой обрезать?
4. Использую Ваш готовый шаблон
{
"valueInputOption": "USER_ENTERED",
"data": [
{
"range": "Лист1!E2",
"majorDimension": "ROWS",
"values": [['Тест']]
}
]
}
Лист такой в таблице есть, она совершенно пустая. Но значение Тест не добавляется. Ошибок при выполнении нет.
2. Да, нужно по красной идти дальше, если надо.
3. Изучите, пожалуйста, внимательней, что у вас в таблице с переменными. Можно выбрать "чистое" значение. Работа с Json требует нюансов (маленьких).
4.png

Чистое значение по адресу {-Json.values[0][0]-}.
4. Только что проверил, все работает. Проверьте, пожалуйста, id таблицы.
 

Dorian_Gray

Client
Регистрация
21.01.2018
Сообщения
227
Благодарностей
340
Баллы
63
Denomm крутая статья:ay: обязательно жду продолжения в конкурсных
не подскажешь про реализацию InsertRangeRequest ? и как будет выглядеть json запрос при добавлении новой строки на место 2, со смещением вниз
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
Denomm крутая статья:ay: обязательно жду продолжения в конкурсных
не подскажешь про реализацию InsertRangeRequest ? и как будет выглядеть json запрос при добавлении новой строки на место 2, со смещением вниз
Также как и удалении ячейки.
6.png
JSON:
{
    requests: [
        {
            insertRange: {
                range: {
                    sheetId: 0,
                    startRowIndex: 3,
                    endRowIndex: 4,
                    startColumnIndex: 3,
                    endColumnIndex: 5
                },
                shiftDimension: "ROWS"
            }
        }
  ]
}
Результат:
1.png
2.png
 
  • Спасибо
Реакции: Dorian_Gray

YuriiL

Новичок
Регистрация
15.05.2019
Сообщения
25
Благодарностей
3
Баллы
3
В процессе работы возникло несколько ошибок при записи данных в ячейки таблицы.
1. Если данные не в формате целых чисел и разделитель запятая то записывается только целое число. Например 33,24 запишет 33
2. Очень странная ошибка. Если после запятой в десятых идет число 0, то вообще не записывает ничего. Например 33,04 - ничего не запишет вообще.
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
В процессе работы возникло несколько ошибок при записи данных в ячейки таблицы.
1. Если данные не в формате целых чисел и разделитель запятая то записывается только целое число. Например 33,24 запишет 33
2. Очень странная ошибка. Если после запятой в десятых идет число 0, то вообще не записывает ничего. Например 33,04 - ничего не запишет вообще.
Тут надо уже смотреть тип данных переменных, в которых лежат значения, а также тестировать типы данных в самой google таблице.
Попробую, отпишу. Может вместо , надо .
 

YuriiL

Новичок
Регистрация
15.05.2019
Сообщения
25
Благодарностей
3
Баллы
3
Да, с точкой все проходит. Интересно что в таблице . заменяется на ,
 
  • Спасибо
Реакции: gevolushn

texnorip

Client
Регистрация
22.10.2016
Сообщения
26
Благодарностей
20
Баллы
3
Здравствуйте,Ваша статья во многом мне помогла, за что огромное спасибо!!
  1. Первый Access Token мы получаем при получении Refresh Token. Его можно также использовать. (Я не знаю лимиты этих токенов, если кто подскажет, буду рад)
Насчет лимитов сам не знаю, какие они, но после работы первого шаблона получаем текстовый файл reflesh-token.txt
Код:
{
  "access_token": "токен",
  "expires_in": 3600,
  "refresh_token": "токен",
  "scope": "https://www.googleapis.com/auth/spreadsheets",
  "token_type": "Bearer"
}
вторая строчка говорит, что время жизни токена 3600 сек (1 час)
 
  • Спасибо
Реакции: gevolushn

Gor

Client
Регистрация
30.09.2016
Сообщения
248
Благодарностей
30
Баллы
28
Приветствую! Еще раз хочу сказать спасибо за статью! Не первый проект благодаря ней делаю уже. Но столкнулся с лимитами на запись. Подскажи пожалуйста как их можно повысить? Нужно записывать несколько десятков ячеек в секунду. Сейчас скорость 1 запись в секунду и то выскакивает это сообщение и нужно ждать несколько секунд, потом продолжаю.
Код:
{
  "error": {
    "code": 429,
    "message": "Quota exceeded for quota group 'WriteGroup' and limit 'USER-100s' of service 'sheets.googleapis.com' for consumer 'project_number:xxxxxxxxxxxxxx'.",
    "status": "RESOURCE_EXHAUSTED",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.Help",
        "links": [
          {
            "description": "Google developer console API key",
            "url": "https://console.developers.google.com/project/xxxxxxxxxxxxxx/apiui/credential"
          }
        ]
      }
    ]
  }
}

------------------------
Нашел такую статью по поводу лимитов:
https://developers.google.com/analytics/devguides/config/mgmt/v3/limits-quotas?hl=ru
Мы применяем которое апи? Напомните пожалуйста )) Есть там лимиты для Management API, Core Reporting API версии 3, MCF Reporting API, Metadata API, User Deletion APIи Real Time Reporting API
 
Последнее редактирование:

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
За лимиты вам не подскажу, если честно. Тут нужно глубоко копать и разбираться как вообще работают лимиты.
Да и не за своим компьютером сейчас, сяду за него возможно завтра, если получится.

Есть такая ссылка. Можете попробовать решить проблему самостоятельно.
 

Gor

Client
Регистрация
30.09.2016
Сообщения
248
Благодарностей
30
Баллы
28
Спасибо, почитаю
 

Shining

Client
Регистрация
25.05.2018
Сообщения
35
Благодарностей
0
Баллы
6
Очень даже пригодилось. Инструкция подробная и понятная! Всё получилось!
 

Zoolone

Banned
Регистрация
05.06.2019
Сообщения
141
Благодарностей
153
Баллы
43

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с Zoolone какие-либо сделки.

Методом тыка и изучения значение переменной Result нашел проблему. Все таки это токен был не действительный, а значит на много попыток его не хватает
Гугл Таблицы разрешают делать до 100 запросов в час или до 500 в день.
 

takerz

Client
Регистрация
02.07.2016
Сообщения
179
Благодарностей
23
Баллы
18
Разъясните этот момент пожалуйста кто-нибудь
Т.е. после каждый 100 запросов нужно будет пересоздавать токен доступа? А есть какой-то обходной путь использовать один токен навсегда?

Пока окно запроса доступа OAuth не будет опубликовано, допускается не более 100 попыток входа с запросом областей действия с доступом к конфиденциальным данным. После публикации в ряде случаев требуется проверка, которая может занять несколько дней.!
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
Разъясните этот момент пожалуйста кто-нибудь
Т.е. после каждый 100 запросов нужно будет пересоздавать токен доступа? А есть какой-то обходной путь использовать один токен навсегда?
Не подскажу вам в этом вопросе.
Можете лишь почитать информацию тут.
upd. Изменить лимиты можно тут.
 
Последнее редактирование:
  • Спасибо
Реакции: takerz

takerz

Client
Регистрация
02.07.2016
Сообщения
179
Благодарностей
23
Баллы
18
Не подскажу вам в этом вопросе.
Можете лишь почитать информацию тут.
upd. Изменить лимиты можно тут.
Вроде почти со всем что мне нужно разобрался. Еще раз спасибо)

Единственное не разобрался, как передать таблицу на 4000 строк одним запросом в гугл таблицу? В JSON опыта мало, туда копать?)
 
  • Спасибо
Реакции: gevolushn

takerz

Client
Регистрация
02.07.2016
Сообщения
179
Благодарностей
23
Баллы
18
Вроде почти со всем что мне нужно разобрался. Еще раз спасибо)

Единственное не разобрался, как передать таблицу на 4000 строк одним запросом в гугл таблицу? В JSON опыта мало, туда копать?)
Проблему решил, уже не нужно. Если кому интересно, то в zenno таблице использовал свои разделители для формата запроса к гугл: ["первый столб", "второй", "третий"], и т.д.. Затем поместил всю таблицу в переменную и подставил в запрос)
 
  • Спасибо
Реакции: btr, irr и gevolushn

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
Проблему решил, уже не нужно. Если кому интересно, то в zenno таблице использовал свои разделители для формата запроса к гугл: ["первый столб", "второй", "третий"], и т.д.. Затем поместил всю таблицу в переменную и подставил в запрос)
Интересное решение. Как вариант:bf:
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)