認証の際には、Appsごとに固有のコードとパスワードを利用します。このパスワードは決して第三者に漏れないよう注意してください。
コードとパスワードは、開発者サイトの「Appsの管理」にて、作成済みApps一覧に表示されている「パスワード表示」ボタンから確認できます。
コードは開発者がほかのAppsと重複しない値を自由に設定できますが、パスワードはシステムによって自動的に決定されます。
認証のための処理の流れは以下のようになります。
ebisumartとApps間の通信は、すべてHTTPS経由となります。HTTPではアクセスできません。
Appsにて、店舗管理者に対して表示するインストール画面を提供してください。ここには、Appsの値段や機能、必要とする権限など、店舗管理者がインストールするかどうかの判断に必要な情報を表示してください。
「インストール」ボタンを表示してください。
「インストール」ボタンを押されたら、店舗管理者のブラウザを以下のURLにリダイレクトしてください。
https://{ルートURL}/admin_authorize.html?scope={Appsが必要とする権限}&response_type=code&redirect_uri={リダイレクトURI}&client_id={Appsコード}&state={ステータス}
リダイレクトされてきたebisumartの画面にてAppsの情報が表示さます。店舗管理者はその情報をもとにAppsを承認するか否かを選択します。
店舗管理者が承認した場合、ebisumartが店舗管理者のブラウザをAppsのリダイレクトURIにリダイレクトします。このとき、リクエストパラメーターに以下の情報が追加されてきます。
code={認証コード}&state={ステータス}
以下のURIにアクセスして、トークンを取得してください。(リダイレクトではありません。Appsから直接ebisumartにアクセスしてください。)
POST https://{ルートURL}/app_oauth/access_token.html [ヘッダ] Content-Type: application/x-www-form-urlencoded Authorization: Basic {Basic認証} [送信データ] grant_type=authorization_code&code={認証コード}&redirect_uri={リダイレクトURI}&client_id={Appsコード}
リクエストパラメーターの値が正しければ、以下のようなレスポンスが返ってきます。
HTTP/1.1 200 OKContent-Type: application/json; charset=UTF-8Cache-Control: no-storePragma: no-cache{ "access_token":"{アクセストークン}", "expires_in":{有効期間}, "refresh_token":"{リフレッシュトークン}", "shop_id":"{店舗ID}"}
データアクセスAPIにアクセスする際に、ヘッダに以下の情報を含めてください。
Authorization: Bearer {アクセストークン}
アクセストークンの有効期間が過ぎると、そのトークンではアクセスできなくなります。その場合、アクセストークンと同時に送られてきたリフレッシュトークンを用いて、あらたなトークンを取得する必要があります。
そのためには、以下のURIにアクセスしてください。
POST https://{ルートURL}/app_oauth/access_token.html [ヘッダ] Content-Type: application/x-www-form-urlencoded Authorization: Basic {Basic認証} [送信データ] grant_type=refresh_token&refresh_token={リフレッシュトークン}&client_id={Appsコード}
処理カスタマイズAPI を利用すると、ebisumartの挙動をAppsによってカスタマイズすることができます。処理カスタマイズAPIを利用するための流れは以下のようになります。
処理カスタマイズAPIによってAppsが呼び出されると、Appsはebisumartから渡される情報に基づいて処理を行います。また、データアクセスAPIを用いてebisumart上の必要な情報を参照・更新することもできます。