Amazon MWS Products API
に電話をかけようとしています。Amazon MWS製品APIから401エラーが返されます。「アクセスが拒否されました」
POST /Products/2011-10-01 HTTP/1.1
Content-Type: x-www-form-urlencoded
Host: mws.amazonservices.com
User-Agent: <Your User Agent Header>
AWSAccessKeyId=AKIAEXAMPLEFWR4TJ7ZQ
&Action=ListMatchingProducts
&MWSAuthToken=amzn.mws.4ea38b7b-f563-7709-4bae-87aeaEXAMPLE
&MarketplaceId=ATVPDKIKX0DER
&Query=0439708184
&SellerId=A1IMEXAMPLEWRC
&SignatureMethod=HmacSHA256
&SignatureVersion=2
&Timestamp=2012-12-12T22%3A23%3A50Z
&Version=2011-10-01
&Signature=V%2BEXAMPLERT%2Baj%2Fxwqo7y3PIifMFHeqFlNYW0EXAMPLEA%3D
私はこのlittle libraryの助けを借りて、このクエリを作成:
だから私の最終的なURL文字列。特に私はそれは署名でかなり複雑な要求を構築する必要がthis function
を要求しようとしています
https://mws.amazonservices.com/Products/2011-10-01?AWSAccessKeyId=<MY_ACCESS_KEY>&Action=ListMatchingProducts&MarketplaceId=A1PA6795UKMFR9&Query=0439708184&SellerId=<SELLER_ID>&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-04-19T16%3A50%3A13Z&Version=2011-10-01&Signature=mZt3OhM14gwLdsQ%2Bhxz5UFMzr7m2U36DvZ7RG3dcsTI%3D
URL文字列が正しく構築されているようです。なぜなら、パラメータが不足しているか間違っていると、このパラメータが無効であるという説明でAPIが400のエラーを返すからです。同じことが署名に適用されます。署名が正しくない場合、APIは署名が無効であることを明確に示すエラーを返します。だから、再び、私はそのURLは大丈夫でなければならないと思う。ただし、APIは401エラーと次のようなHTMLページを返します。
<?xml version="1.0"?>
<ErrorResponse xmlns="http://mws.amazonservices.com/schema/Products/2011-10-01">
<Error>
<Type>Sender</Type>
<Code>AccessDenied</Code>
<Message>Access denied</Message>
</Error>
<RequestID>7b12e3c8-7b1a-4b6e-b7ba-15ec8c4e0968</RequestID>
</ErrorResponse>
アクセスが拒否されました。そして私は理由を知らない。私は何時間も過ぎて何が間違っているのか把握しようとしました。誰でも助けてくれますか?