blogs

Skickaで403エラーが出た場合の対処法

はじめに

Skicka を用いて Github のリポジトリから GoogleDrive にデータをアップロードしようと思いました。 途中で 403 エラーに詰まってしまったので、その際の解決方法を備忘録としてを記します。

問題

Skicka のトークンを発行しようとしたが、途中で 403 エラーとなり進めなくなってしまった。

現状

下記記事を参考に実装したところ、skicka.configを記述する作業までは問題なく進めたが、それ以降上記問題で進めなくなった。 恐らく GCP 側で何らかの変更があったのだろう。

上記ファイルを記述し、skicka -no-browser-auth dfを実行すると、認証画面の URL が返却される。 指定された URL にアクセスすると、認証画面にいくはずなのだが、403 エラーとなり進むことができない。

原因

テストユーザに自分を登録していない場合に、403 となるらしい (Twitter 情報)

対応

テストユーザを登録する

  1. 「API とサービス」内の「OAuth 同意画面」にアクセスする skicka-gcp-sidemenu.png

  2. 追加ボタンを押すと入力画面が表示されるため、入力欄に自分のメールアドレスを入力し登録する。 skicka-gcp-add-user.png

動作確認

  1. テストユーザに自分を登録した上で、再度skicka -no-browser-auth dfを実行してみる
#skicka -no-browser-auth df
Go to the following link in your browser:
https://accounts.google.com/o/oauth2/auth?client_id=XXX.apps.googleusercontent.com...
  1. 上記で取得した URL にアクセスする 先ほどと違って、警告は出るもののContinueから先には進めそう skicka-attention-safe.png

  2. 画面の案内に従ってログイン skicka-ask-account.png

  3. トークンを取得し、入力 skicka-return-token.png

Enter verification code: { 取得したトークン }
  1. 無事アクセス成功!!! 問題なく GoogleDrive の情報が取得できた!
Updating metadata cache: [=======================================================================] 100.00% 5m32s
Capacity   100.00 GiB
Trash        2.04 GiB     2.04%
Drive       12.26 GiB    12.26%
Gmail      262.72 MiB     0.26%
Photos      77.91 GiB    77.91%
Free space   7.53 GiB     7.53%

(100GB 契約で、空き容量が 7GB...)

  1. トークン情報を取得する
# cat /root/.skicka.tokencache.json
{"ClientId":"{client_id}","access_token":"{token}","token_type":"Bearer","refresh_token":"{token}","expiry":"2022-01-22T14:23:59.9556225Z"}#

あとは、このトークン情報を用いて実装するだけです。

参考文献

テストユーザが必要という情報が載っていたツイート