クライアント側で取得したOAuth 2.0認証コードまたはサーバー側のJWTアサーションを使用してアクセストークンをリクエストします。
アクセストークンとは、リクエストが認証済みセッションに属していることをBoxで検証するための文字列です。通常の手順では、最初にユーザーが承認エンドポイントに対して認証をリクエストした後で、Boxが認証コードを送信します。
ユーザーはこのエンドポイントに認証コードを送信してアクセストークンと交換します。返されたアクセストークンは、Box API呼び出しを行うときに使用できます。
c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ
注釈トークンを作成するためのトークン。これはJWTアサーションです。
urn:ietf:params:oauth:grant-type:token-exchange
との組み合わせでgrant_type
として使用されます。
urn:ietf:params:oauth:token-type:id_token
渡されるactor_token
のタイプ。
urn:ietf:params:oauth:grant-type:token-exchange
との組み合わせでgrant_type
として使用されます。
次の値に固定: urn:ietf:params:oauth:token-type:id_token
xxxxx.yyyyy.zzzzz
新しいアクセストークンをリクエストするJWTアサーション。
urn:ietf:params:oauth:grant-type:jwt-bearer
との組み合わせでgrant_type
として使用されます。
123456789
grant_type
にclient_credentials
が指定されている場合に組み合わせて使用されます。値はbox_subject_type
によって決まります。user
の場合はユーザーIDを使用し、enterprise
の場合はEnterprise IDを使用します。
enterprise
client_credentials
との組み合わせでgrant_type
として使用されます。
次の値のいずれか1つ: enterprise
,user
ly1nj6n11vionaie65emwzk575hnnmrk
アクセストークンをリクエストしているアプリケーションのクライアントID。
grant_type
にauthorization_code
、client_credentials
、またはurn:ietf:params:oauth:grant-type:jwt-bearer
が指定されている場合に組み合わせて使用されます。
hOzsTeFlT6ko0dme22uGbQal04SBPYc1
アクセストークンをリクエストしているアプリケーションのクライアントシークレット。
grant_type
にauthorization_code
、client_credentials
、またはurn:ietf:params:oauth:grant-type:jwt-bearer
が指定されている場合に組み合わせて使用されます。
n22JPxrh18m4Y0wIZPIqYZK7VRrsMTWW
ユーザーが自身の代わりにAPI呼び出しを行う権限をアプリケーションに付与した後、ブラウザリダイレクト時にBoxからアプリケーションに渡されるクライアント側承認コード。
authorization_code
との組み合わせでgrant_type
として使用されます。
authorization_code
クライアント側で取得される承認コード、更新トークン、JWTアサーション、クライアント資格情報許可、またはトークンのダウンスコープを目的とするその他のアクセストークンを使用して行われているリクエストのタイプ。
次の値のいずれか1つ: authorization_code
,refresh_token
,client_credentials
,urn:ietf:params:oauth:grant-type:jwt-bearer
,urn:ietf:params:oauth:grant-type:token-exchange
c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ
新しいアクセストークンを入手するために使用される更新トークン。
refresh_token
との組み合わせでgrant_type
として使用されます。
https://api.box.com/2.0/files/123456
トークンを生成するファイルの完全なURL。
item_upload item_preview base_explorer
新しいアクセストークンに割り当てるスコープのスペース区切りリスト。
subject_token
は、これらすべてのスコープを持っている必要があります。そうでない場合、この呼び出しを行うと、401 Unauthorizedエラーになります。
c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ
ダウンスコープされたトークンと交換するためのトークン。通常のアクセストークン、JWTアサーション、アプリトークンのいずれかを使用できます。
urn:ietf:params:oauth:grant-type:token-exchange
との組み合わせでgrant_type
として使用されます。
urn:ietf:params:oauth:token-type:access_token
渡されるsubject_token
のタイプ。
urn:ietf:params:oauth:grant-type:token-exchange
との組み合わせでgrant_type
として使用されます。
次の値に固定: urn:ietf:params:oauth:token-type:access_token
Authorization: Bearer <Token>
のように承認ヘッダー内でトークンを渡すことによって認証済みのAPI呼び出しを行うために使用できる新しいアクセストークンを返します。
認証エラー。
認証エラー。
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"
from boxsdk import Client
# Make sure that the csrf token you get from the `state` parameter
# in the final redirect URI is the same token you get from the
# get_authorization_url method to protect against CSRF vulnerabilities.
assert 'THE_CSRF_TOKEN_YOU_GOT' == csrf_token
access_token, refresh_token = oauth.authenticate('YOUR_AUTH_CODE')
client = Client(oauth)
{
"access_token": "c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ",
"expires_in": 3600,
"issued_token_type": "urn:ietf:params:oauth:token-type:access_token",
"refresh_token": "c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ",
"restricted_to": [
{
"scope": "item_download",
"object": {
"id": 12345,
"etag": 1,
"type": "file",
"sequence_id": 3,
"name": "Contract.pdf",
"sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37",
"file_version": {
"id": 12345,
"type": "file_version",
"sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc"
}
}
}
],
"token_type": "bearer"
}