Здравствуйте. Эта статья написана новичком и рассчитана для новичков.
На форуме есть достаточно тем, где используют или спрашивают как использовать Google Sheets API для работы с Google Таблицами. Но новичкам, а также и уже опытным пользователем все равно не удается до конца разобраться с этой "проблемой". Я решил в силу своих возможностей немного помочь и тем, и тем. Я только изучил азы, так что любой желающий может дополнять тему новыми "вкусностями", которые изучил.
Огромное спасибо @Astraport, за замечательную статью, которая помогла мне начать изучение Google Таблиц.
Начнем.
Официальная документация Google.
I. Настройки аккаунта Google с которого будем работать.
II. Теперь переходим к получению токена, для работы с Google Sheets.
Тут все гораздо проще.
Сам шаблон выглядит так:
III. Самое вкусное. Взаимодействие с Google Sheet.
В предыдущем шаблоне мы получили refresh_token.txt. Зачем этот Refresh Token? С помощью него мы будем получать Access Token - именно он нужен для взаимодействия с Google Sheet. Сложно? "Слегка".
Шаблон с примерами прикреплен.
Кратко о API:
Url-token - это https://oauth2.googleapis.com/token, url для получения токена (он присутствует в скачанном файле);
Client_id и Client_secret - это данные с файла, если не интересно, то можете не вникать;
Refresh_token - сам refresh токен, для получения acess токена.
2. Получение значений из таблицы.
Для получения какого-либо значения из таблицы, нужно использовать get-запрос:
Для удобного просмотра советую использовать специальный блок "Обработка JSON/XML".
3. Получение всех параметров ячейки.
Используем get-запрос.
Ответ приходит такой:
4. Удаление ячейки.
Ячейку будем удалять уже Post-запросом. Выглядит он так:
Вот тут уже и используем ID листа, с которым будем работать.
5. Добавить текст в ячейку.
Используем Post-запрос. С помощью него можно также записывать значения сразу в несколько ячеек.
6. Изменить параметры ячейки.
Изменяем таким Post-запросом.
В заключение.
Для того, чтоб подстроить эти запросы под свои нужды, нужно хорошо поработать головой. Разбирать как работает json формат и как работает каждый запрос я не буду (это очень долго). Могу лишь дать пару рекомендаций в какую сторону двигаться.
Двигаться нужно на этой страничке:
Надеюсь основные моменты я расписал и чуточку облегчил познание Google Sheets API.
P.S. Это аматорская статья. Я не знаю всех аспектов работы с Google API. Я описал только то, что у меня работало и привело к результату. Если у вас что-то не получается, то не кидайте в меня камнями, а лучше опишите что не получается. Я и пользователи форума попробуют вам помочь.
На форуме есть достаточно тем, где используют или спрашивают как использовать Google Sheets API для работы с Google Таблицами. Но новичкам, а также и уже опытным пользователем все равно не удается до конца разобраться с этой "проблемой". Я решил в силу своих возможностей немного помочь и тем, и тем. Я только изучил азы, так что любой желающий может дополнять тему новыми "вкусностями", которые изучил.
Огромное спасибо @Astraport, за замечательную статью, которая помогла мне начать изучение Google Таблиц.
Начнем.
Официальная документация Google.
I. Настройки аккаунта Google с которого будем работать.
- Переходим по ссылке и активируем API для Google Таблиц, если не активирован.
- Теперь переходим в консоль управление API Google. И создаем новый проект и как-то его называем.
- После создание, переходим к маленькой настройке API.
- Называем наше приложение и нажимает на кнопку "Add Scope" или "Добавить область действия". Ставим галочку напротив работы с Google Sheets API.
- Добавляем нужную правку и сохраняем.
- Теперь создаем сам "ключ авторизации". Нажимаем на кнопку "Создать учетные данные" и выбираем "Идентификатор клиента OAuth.
- Выбираем галочку "Другие" и называем наш OAuth.
- После нажимаем OK. Обратите внимание, что (насколько я понял) разрешено 100 авторизаций через этот "ключ" (поправьте если не так), потом будет какой-то косяк.
- Сохраняем на компьютер созданный "ключ".
- На этом настройке в кабинете закончена.
II. Теперь переходим к получению токена, для работы с Google Sheets.
Тут все гораздо проще.
- Качаем шаблон для получения токена (прикреплен к теме).
- Указываем входящие настройки. В настройках указываем путь к файлу, который скачали, а также способ авторизации: через профиль или логин с паролем.
- Запускаем его.
Сам шаблон выглядит так:
III. Самое вкусное. Взаимодействие с Google Sheet.
В предыдущем шаблоне мы получили refresh_token.txt. Зачем этот Refresh Token? С помощью него мы будем получать Access Token - именно он нужен для взаимодействия с Google Sheet. Сложно? "Слегка".
Шаблон с примерами прикреплен.
Кратко о API:
- для получения значений используются get-запросы;
- для внесения изменений используются post-запросы;
- также есть put-запросы, но они реализованы только с помощью кода - не подходит;
- для получения access токена используется post-запрос;
- работать нужно в основном с json форматом.
- Первый Access Token мы получаем при получении Refresh Token. Его можно также использовать. (Я не знаю лимиты этих токенов, если кто подскажет, буду рад)
- Сам POST запрос на получения Acces Token'а выглядит так:
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 таблица. Его можно найти тут:
- ID листа находится после слова "gid". Его также будем при надобности использовать;
- Sheet_Name - название листа;
- A1:A2 - диапазон ячеек, с которых брать значения;
- Access_token - токен для доступа к таблице.
Код:
{
"range": "'Лист1'!A1:A2",
"majorDimension": "ROWS",
"values": [
[
"asd"
],
[
"2"
]
]
}
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-запросом. Выглядит он так:
Вот тут уже и используем 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"
}
}]
}
{
requests:[{
deleteRange:{
range:{
sheetId:0,
startRowIndex:1,
endRowIndex:2,
startColumnIndex:0,
endColumnIndex:1
},
shiftDimension:"ROWS"
}
}]
}
5. Добавить текст в ячейку.
Используем Post-запрос. С помощью него можно также записывать значения сразу в несколько ячеек.
{
"valueInputOption": "USER_ENTERED",
"data": [
{
"range": "Лист1!A1",
"majorDimension": "ROWS",
"values": [['Тест']]
}
]
}
"valueInputOption": "USER_ENTERED",
"data": [
{
"range": "Лист1!A1",
"majorDimension": "ROWS",
"values": [['Тест']]
}
]
}
6. Изменить параметры ячейки.
Изменяем таким Post-запросом.
{
"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)"
}
}
]
}
"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 Переводчик в помощь.
Надеюсь основные моменты я расписал и чуточку облегчил познание Google Sheets API.
P.S. Это аматорская статья. Я не знаю всех аспектов работы с Google API. Я описал только то, что у меня работало и привело к результату. Если у вас что-то не получается, то не кидайте в меня камнями, а лучше опишите что не получается. Я и пользователи форума попробуют вам помочь.
- Категория
- Полезно
Вложения
-
85,8 КБ Просмотры: 945
-
65,4 КБ Просмотры: 793
Для запуска проектов требуется программа ZennoPoster.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...
Для того чтобы запустить шаблон, откройте программу ZennoPoster. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.
Последнее редактирование: