SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

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時間)のアクセストークンが再発行される。

関連するメモ

コメント