teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記修正

2019/06/06 13:33

投稿

CHERRY
CHERRY

スコア25234

answer CHANGED
@@ -6,7 +6,6 @@
6
6
 
7
7
  エンドポイントとリクエストパラメータの組み合わせがあっていないように思われます。
8
8
 
9
-
10
9
  プログラムで、
11
10
 
12
11
  > $params = Array();
@@ -18,7 +17,37 @@
18
17
  > //リクエストパラメータをパイプ「|」で繋ぐ
19
18
  > $str = 'GET|' . 'https://7af-api.omni7.jp/af_api/affiliate/rest/GetShoppingCategory';
20
19
 
21
-
22
20
  と指定されていますが、エンドポイントが、 `GetShoppingCategory` であれば、[カテゴリ検索](https://7af.omni7.jp/af_static_site/API2.html) に記載されている通り、共通パラメータ以外では、`CategoryCode` のリクエストパラメータしか使えません。 ( つまり、 `KeywordIn` は使えない。 )
23
21
 
24
- リクエストパラメータ `KeywordIn` を使うのであれば、[商品検索](https://7af.omni7.jp/af_static_site/API3.html) のエンドポイントの `SearchProduct` を使う必要があるのではないでしょうか?
22
+ リクエストパラメータ `KeywordIn` を使うのであれば、[商品検索](https://7af.omni7.jp/af_static_site/API3.html) のエンドポイントの `SearchProduct` を使う必要があるのではないでしょうか?
23
+
24
+ ----
25
+ (追記)
26
+
27
+ API キーを取得して試してみました。
28
+
29
+ エンドポイントの問題を修正した上で、
30
+
31
+ > //API秘密鍵を用いてHMAC-SHA256で署名
32
+ > $hash = hash_hmac('sha256', $enc_str, $secret_key);
33
+
34
+
35
+ ```
36
+ $hash = hash_hmac('sha256', $enc_str, $secret_key, true);
37
+ ```
38
+ にすることで、
39
+
40
+ ```
41
+ {"SearchProductResponse":{"TotalAmount":"0","Products":""}}
42
+ ```
43
+
44
+ のようにエラーはでなくなり、データが取得されるようになりました。
45
+
46
+ `KeywordIn ` を API ページの例に有る `ペットフード` にすると
47
+
48
+ ```
49
+ {"SearchProductResponse":{"TotalAmount":"185","Products":{"Product":[{"ProductCode":"1106401787","ProductName":"ペットフード・ペット用医療品の最新動向","AffiliateUrl":"https://7af-ent.omni7.jp/relay/affiliate/entranceProcess.do?url=https%3A%2F%2F7net.omni7.jp%2Fdetail%2F1106401787&affid=2794940000006751&admainid=10000001&link=7&ver=1","PersonName":"有原圭三/監修","Manufacturer":"シーエムシー出版","IsbnCode":"978-4-7813-0872-2","SalesPrice":"75,600","Point":"700","ImageUrl":"https://img.omni7.jp/co/productimage/0001/product/87/1106401787/image/1106401787_main_m.jpg","ReleaseDate":"2014-04-03T05:49:27Z","Description":"関連法規・制度の解説、ペットフード製造技術を詳述"},
50
+ (以下略)
51
+ ```
52
+
53
+ のように JSON の取得が可能でした。