目次

概要

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_sales” = 受注データを参照
(例) 
https://{アシスト店長ドメイン名}/oauth/authorize.php?client_id=CLIENT_ID&redirect_uri=REDIRECT_URL&response_type=code&scope=read_sales&state=a397aabc602f7e296db23b0717edd1fda06c345f
  • URLにアクセスすると、認可ページが表示されます。
  • アシスト店長アカウントを持つ利用者は、このページでアプリケーションがショップのデータにアクセスることを許可します。
  • はじめて許可ページへ訪れる利用者は、アシスト店長の管理者ログインID・パスワードの入力を求められます。

認可コードを取得

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

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

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

アクセストークン取得

認可コードを利用してアクセストークンを取得します。
https://{アシスト店長ドメイン名}/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プロパティに格納されている値が、アクセストークンです。
アクセストークンを取得すれば、アシスト店長APIにアクセスする準備は完了です。

  • 認可コードをアクセストークンに交換できるのは1度だけです。
  • アプリケーション側で保存できるようにしてください。
  • アクセストークンは、許可済みアプリケーション一覧画面から失効させることができます。

API情報の呼び出し

  • アクセストークンつきでHTTPリクエストを行うことで、アシスト店長APIにアクセスすることができます。
  • リクエスト、レスポンス、どちらも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://{アシスト店長ドメイン}');
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',
'scope' => 'read_sales',
   '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://{アシスト店長ドメイン}/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);
?>