CLI だけだとよくわからんので curl で直接叩いて試す。
現在のユーザーを取得
一番簡単なやつだけど、トークンどうやって取得するのか?ってなるよね。
% curl -i -X GET 'https://api.box.com/2.0/users/me' --header 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxx'
トークンの取得
OAuth 2.0
OAuth 2.0 でトークン取得する方法は UI 通るので、curl だけではしんどそう。
とりあえず、トークンだけ作ってしまうほうが楽。(なんかしらGUI使わずに出来る方法があれば更新します。)
とりあえず流れとしては、
https://ja.developer.box.com/guides/authentication/oauth2/without-sdk/
に書いてある方法で対応すれば良い。
- 承認URLにブラウザなどでアクセス
- 必要に応じてユーザー認証
- アクセスを許可する
- リダイレクトされたURLからコードを取得
- アクセストークンを作成
承認URL
承認URL は下記のような形式
https://account.box.com/api/oauth2/authorize?response_type=code&client_id=[client id]
client_id には開発者コンソールの
構成 > OAuth 2.0資格情報 > クライアントID
の値をセット。
承認URLにアクセスしコードを取得
上記のURL にブラウザでアクセスし「Boxへのアクセスを許可」ボタンをクリックする。
許可ボタンを押すとリダイレクトURI にコードが付いた状態でリダイレクトされるのでコードを取得する
https://developer.box.com/auth/callback/?code=xxxxxxxxxxx
こんな感じで、リダイレクトURI に code= にコードが入ってくるので取得。
コードからトークンに変換
curl -i -X POST "https://api.box.com/oauth2/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "client_id=[CLIENT_ID]" \
-d "client_secret=[CLIENT_SECRET]" \
-d "code=[CODE]" \
-d "grant_type=authorization_code"
[CODE] に先程のコードを入れて、
[CLIENT_ID] と [CLIENT_SECRET] は先程と同様に
構成 > OAuth 2.0資格情報 > クライアントID
から取得した値をセット。
レスポンスにトークンが含まれているのでそれを使って API を実行する。
JWT
CLI 使う方法が楽。
% box tokens:get
上記のコマンドでトークンが返却されるのでそれを使って API を叩く。