Как правильно подключиться к Google Spreadsheets API?

Я хочу подключиться к Google Spreadsheets API с помощью Python.

So I do:

import gspread
from oauth2client.service_account import ServiceAccountCredentials

scope=['https://www.googleapis.com/auth/spreadsheets', 
'https://wwww.googleapis.com/auth/drive']

credentials = ServiceAccountCredentials.from_json_keyfile_name('cred.json', scope)

gc = gspread.authorize(credentials)

wks = gc.open('datatest').Sheet1

print(wks.get_all_records)

Но я получаю эту ошибку

HttpAccessTokenRefreshError: invalid_scope: https://www.googleapis.com/auth/spreadsheets is not a valid audience string.

Как я могу использовать Google-auth вместо gspread с этими данными?


person Laura    schedule 27.02.2019    source источник
comment
Вы пробовали https://spreadsheets.google.com/feeds, как описано в документации по распространению   -  person J.J. Hakala    schedule 27.02.2019
comment
Угробите oauth2client, так как он устарел. google-auth хорошо работает со служебными аккаунтами. Существуют также актуальные клиентские библиотеки Google для python - gspread вам не понадобится, если вы не хотите их использовать. И если да, то почему бы вам не пометить им этот вопрос?   -  person tehhowch    schedule 27.02.2019
comment
@tehowch, я этого не знал. Есть где посмотреть какой-нибудь работающий пример с google-auth? Джей Джей Хакала, да, я пробовал, но с тем же результатом.   -  person Laura    schedule 27.02.2019


Ответы (1)


вводишь 4w !!!!

X 'https://wwww.googleapis.com/auth/drive'

O 'https://www.googleapis.com/auth/drive'

import gspread
from oauth2client.service_account import ServiceAccountCredentials

scope = ['https://www.googleapis.com/auth/drive']
credentials = ServiceAccountCredentials.from_json_keyfile_name('CredentialsFile.json', scope)
ss_app = gspread.authorize(credentials=credentials)  # make sure your Google Sheets API is enabled
sht = ss_app.open('sheet_name_xxxx')  # In your spreadsheet, click the Share button and paste the client email as same as CredentialsFile.json.client_email, and make sure your Google Drive API is enabled
wks = sht.worksheet('worksheet_name_xxxx')
print(wks.acell('A1').value)

надеюсь, что это поможет.

person Carson    schedule 27.02.2019