APIアクセス実装方法

2021年8月3日をもちましてYahoo! ID連携 v1の新規の登録を終了いたしました。
2022年4月27日にYahoo! ID連携 v1の利用を終了いたしますのでv2への移行が必要です。
v2の移行方法はこちらよりご確認ください。

ウェブAPIのアクセス方法

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

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

リクエスト

Authorizationヘッダー

アクセストークンをHTTPヘッダーに含む形で送信するので、GET/POST/PUTなど任意のHTTPメソッドでもリクエストが送信でき、アクセストークンとウェブAPI固有のパラメータ分離できるのが特徴です。特別な理由がないかぎりAuthorizationヘッダーを使ったウェブAPIリクエスト方式を推奨します。

以下のように、Authorizationヘッダーにアクセストークンを含めてHTTPリクエストを送信します。

GET /path/to/webEndPoint?param=var HTTP/1.1
Host: xxxxxx.yahooapis.jp
Authorization: Bearer <access_token>

サンプルリクエスト

GET /yconnect/v1/attribute?schema=openid HTTP/1.1
Host: userinfo.yahooapis.jp
Authorization: Bearer 2OBRckZjTT5a3aKD......(中略).........mT1oULUNOuUlw3

リクエストボディ

クライアントアプリがウェブブラウザー(Javascript)で動作する場合など、HTTPヘッダーにアクセストークンを含めて送信するのが難しい場合に適したウェブAPIリクエスト方式です。

以下のようにウェブAPIリクエストのボディ部分にアクセストークンを含めて、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>

サンプルリクエスト

POST /yconnect/v1/attribute HTTP/1.1
Host: userinfo.yahooapis.jp
Content-Type: application/x-www-form-urlencoded

param=var&access_token=2OBRckZjTT5a3aKD......(中略).........mT1oULUNOuUlw3

URLクエリ

クライアントアプリがウェブブラウザー(Javascript)で動作する場合など、HTTPヘッダーにアクセストークンを含めて送信するのが難しい場合に適したウェブAPIリクエスト方式です。

以下のようにウェブAPIリクエストのクエリ部分にアクセストークンを含めて、GETでHTTPリクエストを送信します。

GET /path/to/webEndPoint?access_token=<access_token>&param=var
Host: xxxxx.yahooapis.jp

サンプルリクエスト

GET /yconnect/v1/attribute?param=var&access_token=2OBRckZjTT5a3......(中略)......oULUNOuUlw3 HTTP/1.1
Host: userinfo.yahooapis.jp

エラーレスポンス

ユーザー認証エラー

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

HTTPステータス WWW-Authenticate
ヘッダー内のパラメータ
説明 クライアント側の
エラーハンドリング方法
401 error="invalid_request" アクセストークンが空、もしくは不正なフォーマットです。 クライアント側の実装方法が正しいか見直してください。
401 error="invalid_token" アクセストークンが有効期限切れ、もしくはその他の理由で無効になっています。 クライアント側でリフレッシュトークンを保持している場合は、アクセストークン再取得の処理を行ってください。

ウェブAPI固有のエラー

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

アプリケーションの管理

Yahoo! ID連携 v1

開発のヒント