Подключение Google Sheets API

как я понял что-то изменилось в процедуре получения токена google и ни одной рабочей инструкции для себя найти не могу. Делал по этой: https://habr.com/ru/articles/483302/

Всё сделал, сервис акк сделал, выбираль роль editor, но в итоге код который должен вести на страницу выдаёт ошибку: ValueError: Client secrets must be for a web or installed app.

Как сделать что бы эти secrets стали "for a web or installed app"?

Так же пробовал создавать через "OAuth 2.0 Client IDs", уже начинает переходить на страницу в браузере, но на этой странице ошибка: "Ошибка 400: redirect_uri_mismatch"

Что я делаю не так?


Ответы (1 шт):

Автор решения: Artem Filippov

Всё понял, получилось сделать по оф. гайду. То есть через "OAuth 2.0 Client IDs" и нужно было выбирать desktop client а я выбирал web client. Так же код для обновления токена взял с официального гайда.

А еще понял что легче юзать gspread и пользовать без обновления токена. Вот так:

from google.oauth2 import service_account
import gspread


SCOPES = ["https://www.googleapis.com/auth/spreadsheets",
          "https://www.googleapis.com/auth/drive"]

SPREADSHEET_ID = ""
SERVICE_ACCOUNT_FILE = 'service_acc_creds.json'
credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)
client = gspread.authorize(credentials)
sheet = client.open_by_key(SPREADSHEET_ID)
worksheet = sheet.worksheet('Лист1')
value = worksheet.acell('A1').value
print(f"Значение ячейки A1: {value}")
→ Ссылка