🎟️
Dropbox APIトークンを取得する
前提
- Dropbox APIを使用するためにはAPIトークンが必要
- APIトークンはそれほど長くない(14400秒?)有効期限がある。無期限のAPIトークンは存在しない
- 無期限のAPIトークンは存在しないが、リフレッシュトークン(有効期限付きAPIトークンを取得するためのトークン)は無期限である。
手順
アプリケーションを作る
自分だけが使う場合であってもこの手順は必要。
別に公開されたりするわけではないので気楽にやってOK。
権限はよしなに設定してください。
表示される App Key
と App Secret
は後で使用するので控えておいてください。
(再表示できるのでその都度見てもOK)
リフレッシュトークンを取得する
ここはWebブラウザが必要。というよりお手元のPC等で行ってください。
この手順は、制限時間があります。一度この手順の最後まで読んでから始めた方がよいでしょう。
AppとDropboxアカウントの接続を許可する
Webブラウザから以下のURLにアクセスします。$APP_KEY
は先程表示された、App Key
の値に置き換えてください。
すると以下のような画面が表示されるので、続行する。をクリック
その後、アクセスコードが表示されるので表示された値を控えておきます。
多分、これは再表示できないので確実に控えておいてください。(なくしたらもう一度この手順をやれば大丈夫なはずですが)
アクセストークン等を取得する
以下のcurlコマンドを使用する。ちなみに、アクセスコードは一回しか使えないので帰ってきたJSONは確実に保存してください。(失敗したら一つ上からやり直しでOK)
-
$ACC_CODE
は先程取得したアクセスコード -
$APP_KEY
はApp key -
$APP_SEC
はApp Secret
と置換してください。
curl https://api.dropbox.com/oauth2/token \
-d code=$ACC_CODE \
-d grant_type=authorization_code \
-u $APP_KEY:$APP_SEC
蛇足:公式ドキュメントではredirect_uriを指定するようになっているが、指定しなくても良い。
リフレッシュトークンを使用する
以下のcurlコマンドで新しいAPIトークンを含むJSONを取得できる。
curl https://api.dropbox.com/oauth2/token \
-d grant_type=refresh_token \
-d refresh_token=$REFRESH_TOKEN \
-u $APP_KEY:$APP_SECRET$
jq -r ".access_token"
とすればAPIトークンを抜き出せる。
Discussion