環境
macOS Mojave
python 3.7.3
selenium 3.141.0
ライブラリ
gspread
oauth2client
状況
TwitterAPIで取得したデータをスプレッドシートに書き込もうとする際、頻繁に下記のエラーが発生します。
jsonファイルを経由した認証は数時間毎に行っていますし(最初に行う認証をforの途中に挟む)、sleepを適宜挟んでいるので過剰なアクセスという事も無いはずなのですが…
原因をお教えくださると幸いです。
エラー文
gspread.exceptions.APIError: { "error": { "code": 401, "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", "status": "UNAUTHENTICATED" } }
認証周りのコード
scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive'] jsonFile = 'xxxxxx.json' credentials = ServiceAccountCredentials.from_json_keyfile_name(jsonFile, scope) gc = gspread.authorize(credentials)
最初はこれを数時間毎に繰り返してたんですが、そうではなくて調べて出てきたリフレッシュトークンを使うのかなと思い始めています。
リフレッシュトークン自体は記事等を参考に取得できたんですが、その使い方が見つからず困っています。(そもそもその方針でいいのかも含めて)
追記
かと思ったらhttps://tanuhack.com/python/operate-spreadsheet/に
2つのAPIを記述しないとリフレッシュトークンを3600秒毎に発行し続けなければならない
とあるので記述しているからリフレッシュトークンは要らない?
なら何故401エラー?と謎が深まってしまいました…
回答2件
あなたの回答
tips
プレビュー