Google API のinvalid_grantエラーの対処方法
- 2021.06.07
- 未分類
PythonとGoogle Gmail APIを使って自動処理をはじめたのですが、作成後にinvalid_grant エラーというものが発生し、対処を行ったため、その記録を残しておきます。
invalid_grant エラーの発生条件
まず、invalid_grantエラーのメッセージは、
invalid_grant: Token has been expired or revoked と表示される。
発生原因としては、以下のケースが考えられる。
- アプリのアクセス権が取り消された
- refresh tokenが6カ月間使用されていない
- パスワードの変更とtokenにgmailのスコープが含まれる場合
- OAth Consent ScreenのユーザータイプがExternal(外部)、ステータスがテストの状態となっており、refresh tokenが発効から7日経過した場合
私の場合には、一番下のOAth Consent ScreenのユーザータイプがExternal、ステータスがテスト状態であるため、refresh tokenが発行されてから7日経過し、有効期限が切れていたことが原因であった。
・参考画像
エラーの対処方法
上記エラーが発生した場合には、Clien IDを新しく発行しなおし、それを利用するようにすれば解決する。
Client IDの発行は、Credentialsページ→CREATE CREDENTIALS→OAth Client IDで簡単に発行することができる。
上記でClient IDを発行しなおすだけでなく、PCの所定のディレクトリに既に作成されているtokenファイルを削除する必要がある。
おそらくは、token.jsonとファイル検索をかければ出てくるはずなので、それを消しておけばよい。
この作業をしたうえで、再度PythonでGoogle APIを利用すれば、同じコードで機能するようになるはずです。
-
前の記事
【Python】datetime 日付型と時間型の操作 2021.06.07
-
次の記事
MSCI 株式指数の代表的な種類一覧とその内容 2021.06.07