
実行したいAPIは以下公式ページの「商品検索」APIとなります。
https://7af.omni7.jp/af_static_site/API1.html
こちらを実行するにあたり、以下記載のソースを作成しましたが、このようなエラーが返ってきています。
{"ApiError":{"ApiErrorStatus":"NotAuthenticated","ApiErrorMessage":"リクエストパラメータに誤りがあります。(Signature)"}}
エラーとなっていSignatureの作成方法は以下セブンアフィリエイトAPI公式に記載されている内容に沿ってプログラムを作成しましたが、間違っている箇所が見つからない状態です。
https://7af.omni7.jp/af_static_site/static_063.html
PHP
<?php $secret_key = '自身の秘密鍵'; $timestamp = gmdate('Y-m-d\TH:i:s\Z'); //署名を作成 $params = Array(); $params['ApiUserId'] = '自身のApiUserId'; $params['Timestamp'] = $timestamp; $params['ResponseFormat'] = 'JSON'; $params['KeywordIn'] = '4902506352651'; ksort($params); //リクエストパラメータをパイプ「|」で繋ぐ $str = 'GET|' . 'https://7af-api.omni7.jp/af_api/affiliate/rest/GetShoppingCategory'; //リクエストパラメータを「key=value」の組に分解 foreach ($params as $key => $value) { $str .= '|' . $key . '=' . $value; } //できた文字列をUTF-8でURLエンコードする $enc_str = rawurlencode($str); echo $enc_str; //API秘密鍵を用いてHMAC-SHA256で署名 $hash = hash_hmac('sha256', $enc_str, $secret_key); //できた署名をBase64でエンコードする $signature = base64_encode($hash); //←できた署名情報 //リクエストURL組み立て $url = 'https://7af-api.omni7.jp/af_api/affiliate/rest/GetShoppingCategory?'; $url .= 'ApiUserId=' . $params['ApiUserId'] . '&'; $url .= 'Timestamp=' . $params['Timestamp'] . '&'; $url .= 'ResponseFormat=' . $params['ResponseFormat'] . '&'; $url .= 'KeywordIn=' . $params['KeywordIn'] . '&'; $url .= 'Signature=' . $signature; $json = file_get_contents($url);
なぜエラーが返ってくるのか検討はつきますでしょうか?
大変お手数ですがご助力いただけますと幸いです。

まだ回答がついていません
会員登録して回答してみよう