OAuth1.0

OAuthにおけるリクエスト方法

OAuth関連エントリポイントとWebAPIのリクエスト方法

OAuthでは下記4つのリクエスト時に、Consumerはoauth_で始まる各種パラメータ(以下OAuthパラメータ)をリクエストに含める必要があります。

Yahoo! JAPANではこれらのOAuthパラメータを含めたリクエスト方法を3つサポートしています。

  • AuthorizationヘッダにOAuthパラメータを含めてGET/POSTのいずれかで送信【推奨】
  • リクエストボディにOAuthパラメータを含めてPOSTで送信
  • URLクエリにOAuthパラメータを含めてGETで送信


AuthorizationヘッダにOAuthパラメータ含めるリクエスト【推奨】

HTTPリクエスト時にAuthorizationヘッダにOAuthパラメータを指定して送信する方法です。WebAPIのリクエスト生成時にOAuth関連のパラメータを全てAuthorizationヘッダにまとめることで、WebAPI固有のパラメータと独立して送信することが可能になります。このため、WebAPIのサポートメソッドに関わらず、Consumer側のOAuthパラメータに関するリクエスト部分の実装を統一することができます。

リクエストトークン取得時のサンプルリクエスト

GET /oauth/v1/get_request_token HTTP/1.1
Host: auth.login.yahoo.co.jp
Authorization: OAuth realm="yahooapis.jp",
oauth_consumer_key="dj0yJmk9nM9Y29uc3VtZXJzZWNyZXQmeD1lMg--",
oauth_callback="http://www.example.com/consumer/return_url",
oauth_nonce="24829.2331",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="1219450170",
oauth_version="1.0",
oauth_signature="O2AQipLITO0aYHKZc9266RzC94%3D"

WebAPIアクセス時のサンプルリクエスト(POST)

POST /AuctionWebService/V1/OpenWatchList HTTP/1.1
Host: auction.yahooapis.jp
Content-Type: application/x-www-form-urlencoded
Authorization: OAuth realm="yahooapis.jp",
oauth_consumer_key="dj0yJmk9nM9Y29uc3VtZXJzZWNyZXQmeD1lMg--",
oauth_nonce="24829.2331",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="1219450170",
oauth_token="A%3DuqkiebGpiTJl7ThQxU.jDXXaETYyfEy3xAKPyoavokwOOcZcz8Xs_l1Nvnl._
KmCEVCeLkxxT1Y6BgRqf5f98sQWHklBM_anetveR7okK_M_5XEmQ1_1reo3UgKQULT_dQT8Gao3.
Rrgz5rJxgmnYrhdWWdfgTdMQVzpbJT2aGkz59NTK1O8yXVE1EvZUCqju7WiFYu.WHNEw.9TWq3g--",
oauth_version="1.0",
oauth_signature="O2AQipLITO0aYHKZc9266RzC94%3D"

※実際のAuthorizationヘッダには改行は含みません。



POSTでOAuthパラメータの送信

下記のサンプルの通り、リクエストのボディの一部にOAuthパラメータを含める形式で送信します。リクエストメソッドとしてPOSTをサポートしているWebAPIリクエスト時には、WebAPI固有のパラメータもボディ部に含めてリクエストを生成してください。

リクエストトークン取得時のサンプルリクエスト

POST /oauth/v1/get_request_token HTTP/1.1
Host: auth.login.yahoo.co.jp
Content-Type: application/x-www-form-urlencoded

oauth_consumer_key=dj0yJmk9nM9Y29uc3VtZXJzZWNyZXQmeD1lMg--
&oauth_callback=http%3A%2F%2Fwww.example.com%2Fconsumer%2Freturn_url
&oauth_nonce=24829.2331
&oauth_signature_method=HMAC-SHA1
&oauth_timestamp=1219450170
&oauth_version=1.0
&oauth_signature=O2AQipLITO0aYHKZc9266RzC94%3D

WebAPIアクセス時のサンプルリクエスト

POST /AuctionWebService/V1/OpenWatchList HTTP/1.1
Host: auctions.yahooapis.jp
Content-Type: application/x-www-form-urlencoded

oauth_consumer_key=dj0yJmk9nM9Y29uc3VtZXJzZWNyZXQmeD1lMg--
&oauth_callback=http%3A%2F%2Fwww.example.com%2Fconsumer%2Freturn_url
&oauth_nonce=24829.2331
&oauth_signature_method=HMAC-SHA1
&oauth_timestamp=1219450170
&oauth_version=1.0
&oauth_signature=O2AQipLITO0aYHKZc9266RzC94%3D
&page=10

※実際のリクエストボディ部分には改行は含みません。



GETでOAuthパラメータの送信

下記のサンプルの通り、リクエストURLのクエリの一部にOAuthパラメータを含める形式で送信します。リクエストメソッドとしてGETをサポートしているWebAPIリクエスト時には、WebAPI固有のパラメータもURLクエリに含めてリクエストを生成してください。

リクエストトークン取得時のサンプルリクエスト

GET /oauth/v2/get_request_token?oauth_consumer_key=dj0yJmk9nM9Y29uc3VtZXJzZWNyZXQmeD1lMg--
&oauth_callback=http%3A%2F%2Fwww.example.com%2Fconsumer%2Freturn_url
&oauth_nonce=24829.2331
&oauth_signature_method=HMAC-SHA1
&oauth_timestamp=1219450170
&oauth_version=1.0
&oauth_signature=O2AQipLITO0aYHKZc9266RzC94%3D HTTP/1.1
Host: auth.login.yahoo.co.jp

WebAPIアクセス時のサンプルリクエスト

GET /AuctionWebService/V1/OpenWatchList?page=10&oauth_consumer_key=dj0yJmk9nM9Y29uc3VtZXJzZWNyZXQmeD1lMg--
&oauth_callback=http%3A%2F%2Fwww.example.com%2Fconsumer%2Freturn_url
&oauth_nonce=24829.2331
&oauth_signature_method=HMAC-SHA1
&oauth_timestamp=1219450170
&oauth_version=1.0
&oauth_signature=O2AQipLITO0aYHKZc9266RzC94%3D HTTP/1.1
Host: auctions.yahooapis.jp

※実際のURLクエリには改行は含みません。