gtasksの認証エラーと再ログイン

  • OAuthトークンの有効期限が切れると、gtasksはタスクの取得・追加ができなくなります。
  • この状態でも「ログイン済み」と判定されるため、gtasksw login を実行してもエラーになります。
  • 解決するには、先に gtasksw logout でログアウトしてから、再度 gtasksw login でブラウザ認証を行います。
  • 認証が完了すると新しいトークンが保存され、正常に動作するようになります。

関連記事

1. 【エラー】Unable to retrieve task lists

gtasksを使ってタスクを追加しようとしたらエラーになりました。

1. 【エラー】Unable to retrieve task lists
Unable to retrieve task lists. Get "https://tasks.googleapis.com/tasks/v1/users/@me/lists?alt=json&prettyPrint=false": oauth2: "invalid_grant" "Token has been expired or revoked."Code language: JavaScript (javascript)

タスクの追加だけでなく、確認もできませんでした(gts aコマンドで、gtasks のタスク追加コマンドを呼んでいます)。

2. 【エラー】Login failed: already logged in

「Token has been expired or revoked」と書かれていたので、「login」コマンドをしました。
ところが、すでにログイン済みというエラー。

~ % gtasksw login
Login failed: already logged in

3. 【解決】Authorization successful!

そこで、いったんログアウトして、ログインしなおしました。

3. 【解決】Authorization successful!
~ % gtasksw login 
Opening browser for Google authentication...
If browser doesn't open, visit: https://accounts.google.com/o/oauth2/〜
Starting local server on http://localhost:8080...
✓ Authorization successful! Server was running on port 8080
✓ Credentials saved to /Users/〜/.gtasks/token.json

ブラウザでの認証があり、無事にコマンドが動くようになりました。

つまり、OAuth認証のトークンの有効期限が切れて、再認証が必要だったわけです。
トークンが期限切れでも、gtasksは自動でログアウトされるわけではなく、自分でログアウトする必要があることがポイントでした。