コメントありがとうございます。 サービス終了した今なら、安く中古が手に入りそ…
EC-CUBEのWebAPIでアクセストークンを発行する
任意の場所に次のphpをアップロードします。
今回は、hogehoge.comのルートディレクトリに callback.php としてアップロードします。
2~4行目を適宜変更してください。
<?php define('TOKEN_ENDPOINT', '■■■Token endpoint■■■'); define('CLIENT_ID', '■■■クライアントID■■■'); define('CLIENT_SECRET', '■■■クライアントシークレット■■■'); if (!isset($_REQUEST['code'])) die(var_dump($_SERVER)); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, TOKEN_ENDPOINT); curl_setopt($curl, CURLOPT_POSTFIELDS, "grant_type=authorization_code&client_id=".CLIENT_ID."&client_secret=".CLIENT_SECRET."&redirect_uri=http".($_SERVER['HTTPS'] ? "s" : "")."://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."&code=".$_REQUEST['code']); curl_setopt($curl, CURLINFO_HEADER_OUT, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, ["Content-Type: application/x-www-form-urlencoded"]); $result = curl_exec($curl); curl_close($curl); header("Content-Type: text/html"); echo "<html><body><pre>"; print_r(json_decode($result, true)); echo "</pre></body></html>"; exit; ?>
※リフレッシュトークンで再取得する際は、
grant_typeをrefresh_tokenにしcodeは不要で
新たにrefresh_token=<リフレッシュトークン>を付与する
次に、EC-CUBEにログインして、
『設定』>『API管理』>『OAuth管理』で『新規登録』をクリックします。
スコープは必要に応じて、どちらか、または両方にチェックを入れます。
リダイレクトURIに 『https://hogehoge.com/callback.php』を入力して、
『登録』をクリックします。
表示されたクライアントIDを次で使用します。
次のURLを適宜変更してブラウザでアクセスします。
https://<ec-cubeのドメイン>/<管理画面URL>/authorize?response_type=code&client_id=<前項で表示されたクライアントID>&redirect_uri=https://hogehoge.com/callback.php&scope=<scope>&state=<ランダム文字列>
※scopeは、readの場合は scope=read
read/writeの場合は、半角スペースで区切ります。
scope=read wrhte
成功すると、以下のようなアクセストークンが発行されます
Array ( [token_type] => Bearer [expires_in] => 3600 [access_token] => eyJ0eXAiOiJKV1_HOGEHOGE [refresh_token] => def50200754b1b5ceefd_HOGEHOGE )
検索
コメントを残す