Я пытаюсь войти в систему с помощью SignedJwtAssertionCredentials, чтобы заставить gspread работать. Я следовал указаниям здесь с примечаниями для python3. Вот мой класс:
import json
import gspread
from oauth2client.client import SignedJwtAssertionCredentials
class GoogleSpreadsheet():
def fetch(self):
gc = gspread.authorize(self.credentials)
wks = gc.open("TEST of Sheet (Responses)").sheet1
print(wks)
def __init__(self, client_email,pk):
scope = ['https://spreadsheets.google.com/feeds']
self.credentials = SignedJwtAssertionCredentials(client_email, bytes(pk, 'utf-8'), scope)
при этом client_email
и pk
передаются из переменных среды:
gs = GoogleSpreadsheet(app.config.get('GOOGLE_SPREADSHEET_CLIENT_EMAIL'), app.config.get('GOOGLE_SPREADSHEET_PK'))
Переменная среды копируется из json-файла авторизации Google:
export GOOGLE_SPREADSHEET_PK="-----BEGIN PRIVATE KEY-----\n...\n...keystuff...\n...\n-----END PRIVATE KEY-----\n"
Ошибка при каждой попытке с OpenSSL.crypto.Error: []
Предложение здесь Ошибка загрузки закрытого ключа с OpenSSL.crypto.Error: [] не помогло, так как мой ключ не зашифрован.
Какие-либо предложения?