【目次】
アプリケーション登録
認証ページ表示
認可コードを取得
アクセストークン取得
API情報の呼び出し
サンプルコード

設定方法

API連携の設定です。

アプリケーション登録

基本設定>外部アプリ連携

アシスト店長とのAPI連携についてはこちら

項目 内容
アプリケーション名 任意でアプリケーション名を設定してください。
リダイレクトURL リダイレクトURLを設定してください。
リダイレクトURLには認証情報を受け取るURLを指定してください。
IP制限 許可するIPアドレスを設定してください。
未設定の場合は無制限で許可します。
クライアントID 新規登録時は空欄で登録してください。
登録すると発行されます。
シークレットID 新規登録時は空欄で登録してください。
登録すると発行されます。
認証ページ表示

https://{ドメイン名}/api/oauth/authorize.php に、必要なパラメータをつけてGETリクエストを行ってください。
アカウントの認証を行うHTMLページが表示されます。

パラメータ名 有効な値
client_id アプリケーション詳細画面で確認できるクライアントID
response_type “code”を指定
redirect_uri アプリケーション登録時に入力したリダイレクトURLと同一のものを指定
state 任意の文字列
scope 予約パラメータです。現在は指定できません。
アプリケーションが利用したい機能をスペース区切りで指定します。
“read_products” = 商品データを参照
“write_products” = 在庫データを更新
“read_sales” = 受注・顧客データを参照
“write_sales” = 受注データを更新
(例)
https://{楽楽B2Bドメイン名}/api/oauth/authorize.php?client_id=CLIENT_ID&redirect_uri=REDIRECT_URL&response_type=code&state=a397aabc602f7e296db23b0717edd1fda06c345f
  • URLにアクセスすると、認可ページが表示されます。
  • 楽楽BBCアカウントを持つ利用者は、このページでアプリケーションがショップのデータにアクセスることを許可します。
  • はじめて許可ページへ訪れる利用者は、楽楽BBCの管理者ログインID・パスワードの入力を求められます。
認可コードを取得

リダイレクトURLに指定したURLで許可コードが取得できます。

例)
https://{御社ツールドメイン名}/getAuth.php?code=xxxxxxxxx&state=zzzzzzzzz

codeの値が認可コードになります。

アクセストークン取得

認可コードを利用してアクセストークンを取得します。
https://{楽楽BBCドメイン名}/api/oauth/token.php に対してPOSTリクエストを行います。

リクエストパラメータ

パラメータ名 有効な値
client_id アプリケーション詳細画面で確認できるクライアントID
client_secret アプリケーション詳細画面に表示されているシークレット文字列
code 取得した認可コード文字列
grant_type “client_credentials”を指定

レスポンスデータ

パラメータ名 有効な値
access_token アクセストークン
expires_in 有効期限
refresh_token リフレッシュトークン

リクエストが成功すると、以下のようなレスポンスがJSONで返ります。

{"access_token":"d461ab8XXXXXXXXXXXXXXXXXXXXXXXXX","token_type":"beare r","expires_in":null,"refresh_token":null,"scope":""}

access_tokenプロパティに格納されている値が、アクセストークンです。
アクセストークンを取得すれば、楽楽BBCAPIにアクセスする準備は完了です。

  • 認可コードをアクセストークンに交換できるのは1度だけです。
  • アプリケーション側で保存できるようにしてください。
  • アクセストークンは、許可済みアプリケーション一覧画面から失効させることができます。
API情報の呼び出し
  • アクセストークンつきでHTTPリクエストを行うことで、楽楽BBCAPIにアクセスすることができます。
  • リクエスト、レスポンス、どちらもJSONでやりとりを行います。
  • 各APIは、URLとHTTPメソッドで操作を表します。 

  ・GET参照
  ・POST新規登録
  ・PUT更新
  ・DELETE削除

  • POST,PUTの際には、ヘッダに Content-Type: application/json をつけ、リクエストボディにJSONを送信します。
  • リクエストボディのJSONに日本語が含まれる場合は文字コードはUTF-8、\uNNNN形式でエンコードされている必要があります。
  • Authorizationヘッダに以下の形式でアクセストークンを付与し、各APIへのリクエストを行います。
Authorization: Bearer 0908dXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
サンプルコード

※以下はサンプルです。URLやパラメータは便宜修正してください。

アプリケーションのWebサーバのサンプル

<?php

 define("OAUTH2_SITE", 'https://{楽楽BBCドメイン}');
 define("OAUTH2_CLIENT_ID",'XXXXX');      // クライアントIDを入力します。
 define("OAUTH2_CLIENT_SECRET", 'XXXXX'); // クライアントシークレットを入力します。
 define("OAUTH2_REDIRECT_URI", 'http://example.com/index.php');

 $code = $_GET['code'];
 $state = sha1(uniqid(mt_rand(), true));  //任意の文字列をセット。
// 認可ページへリダイレクトする 
if (empty($code)) {
     $params = array( 
        'client_id'     => OAUTH2_CLIENT_ID, 
        'redirect_uri'  => OAUTH2_REDIRECT_URI,
         'response_type' => 'code',
         'state'         => $state
     );
     $auth_url = OAUTH2_SITE . '/api/oauth/authorize.php?' . http_build_query($params);
     header('Location: ' . $auth_url);
     exit;
 } 
// 認可後
 $params = array(
     'client_id'     => OAUTH2_CLIENT_ID,
     'client_secret' => OAUTH2_CLIENT_SECRET,
     'code'          => $code,
     'grant_type'    => 'client_credentials',
     'redirect_uri'  => OAUTH2_REDIRECT_URI
 );
 $request_options = array(
     'http' => array(
         'method'  => 'POST',
         'content' => http_build_query($params)
     )
 );
 $context = stream_context_create($request_options);

 $token_url = OAUTH2_SITE . '/api/oauth/token.php';
 $response_body = file_get_contents($token_url, false, $context);
 $response_json = json_decode($response_body);

アクセストークンを用いたPUTリクエストのサンプル

<?php

$arrParam = array();
$arrParam['serial_order_id'] = '5'


$api_url = 'https://{楽楽BBCドメイン}/api/v1/orders.php?' . http_build_query($arrParam);
$api = new HTTP_Request($api_url, $option);
// POSTで送信
$api->setMethod(HTTP_REQUEST_METHOD_GET);
// Header設定
$api->addHeader('Authorization', "Bearer {アクセストークン}");
// HTTPリクエスト実行
$response_api = $api->sendRequest();
$status_code = $api->getResponseCode();
$response_body_api = $api->getResponseBody();
$response_body_api = json_decode($response_body_api);
?>