DropboxのAPI
問題
システム用(アプリ用)にずっと使えるAPIキーを取得したいです。
答え
1.アプリを作る
https://www.dropbox.com/developers
2.アプリの設定、権限を付与
手動でトークンを取得する場合は、OAuth 2 Redirect URIs は設定しなくても対応可能。
権限はファイルを作りたいとか、見るだけでいいとか、用途に応じて必要な権限を付与。
3.アクセスコードを取得
ブラウザで以下にアクセス。
https://www.dropbox.com/oauth2/authorize?client_id=XXXXXXXXXXXXXXX&&response_type=code&token_access_type=offline
client_id はアプリの App key。
redirect_uri は設定していないなら空欄にする → www.dropbox.com の画面にリダイレクトされる。
設定したのなら、設定値を redirect_uri=~~ に指定。
redirect_uri を指定しなかったら最終的に下図のようになる。
有効期限があるので早めに次の手順へ。
4./oauth2/token する
取得したアクセスコードを使用して以下をリクエストする。
アクセスコードを AUTHORIZATION_CODE に入れる。
curl https://api.dropbox.com/oauth2/token \ -d code=<AUTHORIZATION_CODE> \ -d grant_type=authorization_code \ -d redirect_uri=<REDIRECT_URI> \ -u <APP_KEY>:<APP_SECRET>
redirect url を登録していないなら省略。
curl https://api.dropbox.com/oauth2/token \ -d code=<AUTHORIZATION_CODE> \ -d grant_type=authorization_code \ -u <APP_KEY>:<APP_SECRET>
JSONでアクセストークン access_token とリフレッシュトークン refresh_token などが返ってくる。
access_token は有効期限まで使える。
5.アクセストークンが期限切れになったらリフレッシュトークンで再取得する
システム(アプリ)はリフレッシュトークンを保存しておいて、アクセストークンが期限切れになったら再取得するようにする。
curl https://api.dropbox.com/oauth2/token \ -d grant_type=refresh_token \ -d refresh_token=<REFRESH_TOKEN> \ -u <APP_KEY>:<APP_SECRET>
有効期限14400秒(=4時間)のアクセストークンが再発行される。
コメント