Yahoo! ID連携

APIアクセス実装方法

ウェブAPIのアクセス方法

Yahoo! ID連携ではウェブAPIアクセスにおいてOAuth2.0 Bearer Token Usageをサポートしており、以下3とおりの方法によりAccess Tokenを送信できます。

  • AuthorizationヘッダーにAccess Tokenを含めて任意のHTTPメソッドで送信【推奨】
  • リクエストボディにAccess Tokenを含めてPOSTで送信
  • URLクエリにAccess Tokenを含めてGETで送信


リクエスト

Authorizationヘッダー

  • Access TokenをHTTPヘッダーに含む形で送信するので、GET/POST/PUTなど任意のHTTPメソッドでもリクエストが送信でき、Access TokenとウェブAPI固有のパラメータ分離できるのが特徴です。特別な理由がないかぎりAuthorizationヘッダーを使ったウェブAPIリクエスト方式を推奨します。
  • 以下のように、AuthorizationヘッダーにAccess Tokenを含めてHTTPリクエストを送信します。
GET /path/to/webEndPoint?param=var HTTP/1.1
Host: xxxxxx.yahooapis.jp
Authorization: Bearer ‹access_token›
  • サンプルリクエスト
GET /yconnect/v2/attribute?access_token=SlAV32hkKG HTTP/1.1
Host: userinfo.yahooapis.jp

リクエストボディ

  • クライアントアプリがウェブブラウザー(Javascript)で動作する場合など、HTTPヘッダーにAccess Tokenを含めて送信するのが難しい場合に適したウェブAPIリクエスト方式です。
  • 以下のようにウェブAPIリクエストのボディ部分にAccess Tokenを含めて、POSTでHTTPリクエストを送信します。
POST /path/to/webEndPoint HTTP/1.1
Host: xxxxx.yahooapis.jp
Content-Type: application/x-www-form-urlencoded

param=var&access_token=‹access_token›
  • サンプルリクエスト
GET /yconnect/v2/attribute?access_token=SlAV32hkKG HTTP/1.1
Host: userinfo.yahooapis.jp

URLクエリ

  • クライアントアプリがウェブブラウザー(Javascript)で動作する場合など、HTTPヘッダーにAccess Tokenを含めて送信するのが難しい場合に適したウェブAPIリクエスト方式です。
  • 以下のようにウェブAPIリクエストのクエリ部分にAccess Tokenを含めて、GETでHTTPリクエストを送信します。
GET /path/to/webEndPoint?access_token=‹access_token›&param=var
Host: xxxxx.yahooapis.jp
  • サンプルリクエスト
GET /yconnect/v2/attribute?access_token=SlAV32hkKG HTTP/1.1
Host: userinfo.yahooapis.jp


エラーレスポンス

ユーザー認証エラー

ユーザー認証に関連するエラーレスポンスはWWW-Authenticateヘッダーで返却されます。

HTTPステータス WWW-Authenticateヘッダー内のパラメータ 説明 クライアント側のエラーハンドリング方法
400 error="invalid_request" Access Tokenが空である、不正なフォーマットである、もしくは重複しています。 クライアント側の実装方法が正しいか見直してください。
401 error="invalid_token" Access TokenAccess Tokenが有効期限切れ、もしくはその他の理由で無効になっています。 クライアント側でRefresh Tokenを保持している場合は、動的にAccess Token更新を行ってください。
402 error="insufficient_scope" ユーザーにアクセス認可されていません。スコープ外のWeb APIへのアクセスです。 アプリケーションで利用可能なスコープおよびscopeパラメーターに不足がないかご確認ください。

ウェブAPI固有のエラー

ウェブAPI固有のレスポンスについてはウェブAPIの仕様書を参照してください。



Yahoo!知恵袋で調べる