OAuth 2.0のクライアント・クレデンシャルズ・グラントに準拠したアクセストークン取得APIです。設計上の考え方は 認証とトークン管理ガイド を参照してください。
アクセストークンの取得
POST/api/ext/token
認証:不要(このAPI自体がトークンを発行するため)
リクエストパラメータ
| パラメータ | 型 | 必須 | 説明 | デフォルト |
|---|---|---|---|---|
grant_type |
String | ○ | client_credentials 固定 |
- |
client_id |
String | ○ | OAuthアプリケーションのクライアントID | - |
client_secret |
String | ○ | OAuthアプリケーションのクライアントシークレット | - |
リクエスト例
curl -X POST "{{APP_URL}}/api/ext/token" \
-d grant_type=client_credentials \
-d client_id={client_id} \
-d client_secret={client_secret}
レスポンス(成功時)
HTTPステータス:200
{
"access_token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"token_type": "Bearer",
"expires_in": 86400,
"scope": null
}
| フィールド | 型 | 説明 |
|---|---|---|
access_token |
String | 以降のAPIコールで Authorization ヘッダーに使用するアクセストークン。文字数は固定ではないため、保存先のカラムは余裕を持った長さ(255文字程度を推奨)で設計してください |
token_type |
String | トークンの種類(Bearer) |
expires_in |
Integer | アクセストークンの有効期限(秒)。発行から 86400 秒=24時間 |
scope |
String | null | 常に null。本APIにはトークンごとの権限(スコープ)制御の仕組みはなく、参照する必要はありません(詳細は 認証とトークン管理ガイド を参照) |
本APIに リフレッシュトークンの機能はありません。レスポンスにrefresh_tokenフィールドは含まれないため、アクセストークンの有効期限が切れた場合は 認証とトークン管理ガイド の通り、client_credentialsグラントによる再取得をおこなってください。
レスポンス(失敗時)
HTTPステータス:400 または 401
client_idが未指定、またはgrant_typeがclient_credentials以外の場合:400client_idとclient_secretの組み合わせが正しくない場合:401(WWW-Authenticate: Basic realm="token"ヘッダーが付与されます)
レスポンスボディはいずれの場合も同一です。
{
"status": false,
"errors": ["認証に失敗しました。"],
"all_errors": ["認証に失敗しました。"],
"error_code": "API-OPENAPI16"
}
以降のAPIコールでの認証ヘッダー
トークン取得後、他のすべてのエンドポイントでは以下のヘッダーを付与してください。
Authorization: Bearer {access_token}
URL中に client_id やSKUを指定する必要はありません。アクセストークンをもとに接続元クライアントが自動的に特定されます。