なぜか質問を投稿すると反映されない。。 何かしら問題があってはじかれている??
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
)
検索

コメントを残す