Top > API一覧 > OAuth & access_token

OAuth2.0(API認可方式)とはセキュアなAPI認可 (authorization) の標準的な手段です。
※詳細については以下URLをご覧ください。
http://tools.ietf.org/html/draft-ietf-oauth-v2-15


1. Authorization Codeリクエスト

最初に、Webブラウザを利用して、エンドユーザの Authorization Code を取得します。 以下のURLをエンドユーザにリクエストさせてください。エンドユーザは、 アクセスを認可するかしないかを選択する画面にリダイレクトされます。

エンドユーザにより承認がされると、 redirect_uri で指定したページへ code というパラメータ付きでリダイレクトされます。

※詳細については以下URLをご覧ください。
http://tools.ietf.org/html/draft-ietf-oauth-v2-15#section-4.1.1
※“状態”を表すパラメータをサポートしていません。こうしたパラメータが必要な場合は、redirect_uriに含めてください。

Method

POST/GET

URL

https://app.rakuten.co.jp/services/authorize

Parameter

response_type=code
client_id=[application_id]
redirect_uri=[your site]
scope=[scope]

リクエスト例

https://app.rakuten.co.jp/services/authorize?
response_type=code&
client_id=rakuten123&
scope=rakuten_favoritebookmark_read&
redirect_uri=http%3a%2f%2fwww%2erakuten%2eco%2ejp%2f
    • client_id: 自分のアプリのapplication_idが "rakuten123" の場合は "rakuten123" を指定してください
    • redirect_uri: リダイレクトさせたいURIが "http://www.rakuten.co.jp" の場合はUTF8でエンコードした "http://www.rakuten.co.jp" を指定してください。また、URIドメインは、アプリ作成時に指定した "コールバック許可ドメイン" と同じドメインのURIを指定してください
    • scope: 楽天お気に入りブックマーク取得APIを使用する場合は"rakuten_favoritebookmark_read"を指定してください

2. Access Tokenリクエスト

続いて、アプリでは、 1.Authorization Codeリクエスト で取得した code を利用して、 APIのリクエストに必要な、 access_token をサーバー間通信でリクエストします。

※詳細については以下URLをご覧ください。
http://tools.ietf.org/html/draft-ietf-oauth-v2-15#section-4.1.3
※“状態”を表すパラメータをサポートしていません。こうしたパラメータが必要な場合は、redirect_uriに含めてください。

Method

POST

URL

https://app.rakuten.co.jp/services/token

Parameter

grant_type=authorization_code
client_id=[application_id]
client_secret=[application_secret]
code=[code]
redirect_uri=[your site]

リクエスト例

https://app.rakuten.co.jp/services/token?
grant_type=authorization_code&
client_id=rakuten123&
client_secret=rakuten456&
code=[code]&
scope=rakuten_favoritebookmark_read&
redirect_uri=http%3a%2f%2fwww%2erakuten%2eco%2ejp%2f
    • client_id: 自分のアプリの application_id が"rakuten123"の場合は"rakuten123"を指定してください
    • client_secret: 自分のアプリの application_secret が"rakuten456" の場合は "rakuten456" を指定してください。 なお、application_secret は絶対に他人に知られないようにしてください。誤って知られてしまった場合は Secretの再生成 をしてください
    • redirect_uri: 1. Authorization Code リクエスト で指定したものと同じものを指定してください。
    • code: 1.Authorization Codeリクエスト により取得した code を指定してください

Response

リクエストが正常に処理されると、HTTP ステータスコードが200 の以下のような JSON がレスポンスされます。

フィールド名 説明
access_token APIにアクセスする際に利用するトークンです。
refresh_token OAuth2 におけるアクセストークンのリフレッシュに利用するものです。現在は利用できません。
expires_in アクセストークンが利用できる、残り時間 (秒) です。
scope access_token によりアクセスできる、スコープです。

レスポンス例

{
    "access_token":"P5se6bF2oy26vGjQWu3JBmKdmm1wzOOXxY7mqs1cp4c",
    "refresh_token":"GWQGT_9VNbDxFhHz2v-TNvN7pd4slEqJhseV6x351qw",
    "token_type":"BEARER",
    "expires_in":299,
    "scope":"rakuten_favoritebookmark_update"
}

Error

リクエストが正常に処理されなかった場合、以下のような HTTPステータスコードと、 JSON がレスポンスされます。

HTTPステータスコード JSON error フィールド 説明
400 invalid_client client_idclient_secret に誤りがある場合
400 invalid_request code に誤りがある場合
500 system_error システムエラー
503 service_unavailable メンテナンス

エラー例

{
    "error":"invalid_request",
    "error_description": "invalid code"
}

3. API利用


2.Access Tokenリクエスト で取得した access_token で、APIにリクエストが可能になります。 詳細は各APIのページをご覧ください。 現在(2012年9月)、アクセストークンの有効期限は、5分間となっています。