xheirt
@xheirt
Java, Python

Как подключиться к Google Sheets API с помощью данных OAuth 2.0?

Пишу простого телеграм бота, который должен брать данные от пользователей об аренде помещения и сохранять их в гугл таблицу.
И у меня возникает большая проблема с этими таблицами, а если точнее, то я не могу подключиться к ним.
Ошибка приложения:
ValueError: ('Unexpected credentials type', None, 'Expected', 'service_account')

Проблемный код:
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
creds = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
client = gspread.authorize(creds)

# Получаем доступ к Google Sheets документу
#ранее я использовал doc_id1, тк думал там надо указывать код из ссылки на свою таблицу, но где то вычитал,
#что там нужно указывать имя таблицы, и потому указал её имя, но что то, что то не работает
doc_id1 = '1cNV77ShiG4L0wGDBc_IcoxW2vsYrXteRJZxvm7XcZuY'
doc_id = 'testDB'
sheet = client.open(doc_id).sheet1
print(sheet.get_all_records())


Содержание файла credentials.json:
{"installed":{"client_id":"715570010033-a5v9qgr5v4o56mbf8ao5et9ceif7rker.apps.googleusercontent.com","project_id":"testbd-385012","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"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","redirect_uris":["http://localhost"]}}


Думая что проблема из за аккаунта, пытался решить её опираясь на следующую инструкцию:
https://support.google.com/a/answer/7378726?hl=ru
но там возникло множество проблем, по типу прикрепления хостинга организации и тд, которого у меня нет

Подскажите, как решить эту проблему?
  • Вопрос задан
  • 372 просмотра
Решения вопроса 1
@AlexVWill
Думая что проблема из за аккаунта, пытался решить её опираясь на следующую инструкцию:
https://support.google.com/a/answer/7378726?hl=ru
но там возникло множество проблем, по типу прикрепления хостинга организации и тд, которого у меня нет
Подскажите, как решить эту проблему?

там же по ссыке четко и даже по русски написано:
Убедитесь, что эта статья вам подходит. Она адресована пользователям продуктов Google Workspace для переноса и синхронизации данных. Разработчикам, создающим сервисные аккаунты для своих приложений, следует изучить дополнительную техническую информацию.

У тебя не Google Workspace, а простая табличка из бесплатного эккаунта, как я понял.
И в инструкции есть ссылка куда ходить по данному вопросу: https://developers.google.com/identity/protocols/o...
Попробуй почитать там.
Ну и в консоле посмотри, там создание сервисного эккаунта
spoiler

HKGZ.png
HKGN.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы