Yahoo! ID連携

APIアクセス実装方法

ウェブ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!知恵袋で調べる