アカウントと共有されている組織内のスプレッドシートを読み取って、レコードをデータベースにインポートしようとしています。生のテキスト パスワードを使用する代わりに OAuth2.0 を使用したいのですが、これを機能させるのに問題があります。私のコードは今これです:
scope = ['https://spreadsheets.google.com/feeds', 'https://docs.google.com/feeds']
credentials = SignedJwtAssertionCredentials('5***2@developer.gserviceaccount.com',SIGNED_KEY,scope)
gc = gspread.authorize(credentials)
print gc.openall()
これは以下を返します:
$ python read_sheets.py
[]
私のアカウントにはおそらく 100 のスプレッドシートが共有されているので、なぜこのようなことが起こっているのかわかりません。私が持っていたアイデアの 1 つは、サービス アカウントのメール アドレスにはシートが共有されていないということですが、アカウントの実際のメール アドレスに切り替えるとoauth2client.client.AccessTokenRefreshError: invalid_grant
、エラーが発生します。手順が足りないようですが、gspread の手順とサービス アカウントのGoogle oauth2の両方に従っていますが、他に何をする必要があるかわかりません。助けに感謝します