最終的に原因がよく分かってないのですが、数日前からNP_Amazonでの表示が必ずエラーになっていた件について、対処方法がわかったので備忘として書き記しておきます。
何回投稿し直してもエラーになったのがちょうどミニスーファミ予約開始日だったこともあり、AmazonのAWSが混み合ってるのかな−、と思って様子見していたのですが、数日経過しても収まらないのでエラー内容をよく見てみたら、なんか様子がおかしいのです。
エラー文言の一部を**********でマスクして記載すると、下記のようになります。かなり横に長いですが、注目すべきは末尾あたりですね。
Warning: file_get_contents(http://ecs.amazonaws.jp/onca/xml?AWSAccessKeyId=**********A&AssociateTag=takehana-22%20&ItemId=4047332844&ItemPage=1&Operation=ItemLookup&ResponseGroup=Small%2CItemAttributes%2COfferFull%2CImages%2CSimilarities%2CReviews&Service=AWSECommerceService&Timestamp=2017-09-18T07%3A22%3A02Z&Version=2009-03-31&Signature=7PPq3XaoiOV0j2l9ZpsjvNju0t0hhNXXqohytpizYqw%3D) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /**********NP_Amazon.php on line 480
500エラー(サーバービジー)ではなく、400エラーとなっています。
HTTP request failed! HTTP/1.1 400 Bad Request
リクエストの内容がダメというのだけはなんとなくわかるんですが、これだけだと具体的にどう直せばいいのかサッパリです。ダメもとで上記エラーのURLを直接表示すると、結構具体的なエラーメッセージを表示してくれました。
SignatureDoesNotMatchThe request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.8031e158-325e-4c34-806d-7951b56f1994
なんでか分かりませんが、シークレットキーがダメだそうです。念のためにAmazonアソシエイトページからログインして、ツール>Product Advertising APIで確認すると、なんとシークレットキーとかが無かったことになってます。
認証情報を追加ボタンを押下し、表示されたアクセスキーとシークレットキーの組み合わせをメモしたりCSVダウンロードしてから、NucleusのNP_Amazon設定画面で設定しなおして、ついでに「takehana-22 」と末尾に余計な半角スペースがついてたのも修正してみたところ、ちゃんと動くようになりました。
なんでシークレットキーが無効になったのか、いつの間にアソシエイトID設定の末尾に空白がついたのか、その原因はわかりません。ただ、もしこうなってしまったら再取得しなおして、設定しなおせば大丈夫とわかったのは収穫でした。
サポートに連絡することなく、なんとか自力で改善できてよかったです。
コメント