0

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> 

アクセスが拒否されました。そして私は理由を知らない。私は何時間も過ぎて何が間違っているのか把握しようとしました。誰でも助けてくれますか?

答えて

5

この問題の原因は、私がヨーロッパのhttps://mws-eu.amazonservices.comの代わりにアメリカのURL https://mws.amazonservices.comと呼んでいたためです。 Amazonの回答が、単にエラーより多くの文脈を与えるのであれば、本当にうれしいです。Access denied

関連する問題