出品用アカウント
セラーフォーラム

Amazonセラーフォーラム » 開発者サポート » AmazonマーケットプレイスWebサービス(Amazon MWS)

スレッド: MWSでのSignatureDoesNotMatchの署名エラー
この質問は 回答されました


パームリンク 返答: 4 - ページ: 1 - 前回の投稿: 2017/05/26 13:47 ユーザー名: crazydiamond47
crazydiamond47

投稿メッセージ: 3
登録済み: 17/04/27 05:07
に投稿: 2017/05/17 00:33  
クリックして不正使用を報告…   クリックしてこのスレッドに返答 返答
Amazon MWS APIで出品中商品レポートを取得するプログラムをVB.NETで作成中で、主に以下のページの手順に従い、添付のテキストファイルのようにコードを作成しました。

【参考としたページ】
http://docs.developer.amazonservices.com/ja_JP/dev_guide/DG_ClientLibraries.html

しかし、作成された署名済みURLをブラウザで送信しても、"SignatureDoesNotMatch"というエラーが返ってきます。

これは"403 Forbidden"のエラーのようで、色々と試行錯誤をしたのですが改善できません。

恐れ入りますが、修正方法をご教授お願いいたします。

-----------------【レスポンス】-----------------

<Type>Sender</Type>
<Code>SignatureDoesNotMatch</Code>
<Message>The 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.</Message>

-----------------【環境】-----------------
・開発:Visual Studio Community 2017 Ver15.1
 (AWSSDK for .NET をインストール)
・OS:Windows Server 2008 R2 Standard
(上記に仮想デスクトップを構築して使用)

2017/05/17 0:41にcrazydiamond47によって編集されました

この質問は役に立ちますか? はい 0   いいえ
返答数 4
返答の並べ替え:
大久保

投稿メッセージ: 13
登録済み: 17/03/06 02:31
に投稿: 2017/05/17 09:01   こちらへ返答 : crazydiamond47 こちらへ返答 : crazydiamond47  
クリックして不正使用を報告…   クリックしてこのスレッドに返答 返答
こんにちは。ざっと見ただけですが、最後のURIでGETのリクエストを作成しているようなのでrawTextToSignの最初の”POST"を”GET"に変更する必要があるかと思いますので、一度お試し頂ければと思います。
この回答は役に立ちましたか? はい 1   いいえ 0
crazydiamond47

投稿メッセージ: 3
登録済み: 17/04/27 05:07
に投稿: 2017/05/17 15:07   こちらへ返答 : 大久保 こちらへ返答 : 大久保  
クリックして不正使用を報告…   クリックしてこのスレッドに返答 返答
大久保様

ご回答いただき誠にありがとうございます。

ご提案いただいたように"GET"に変更してみましたが、状況は変わりませんでした。

逆に、最後のURIのリクエストでPOSTを指定する方法はございますでしょうか?

なお、Scratchpadでは問題なくレスポンスが返ってきておりまして、
そこではSignatureの文字数が44字(記号も1字として)なのに対し、
私の作成したプログラムでは88字で倍になっています。
この辺の署名方法が原因かと推察いたしますが、署名のプログラムで
誤りなどはございますでしょうか?

たびたび申し訳ございませんが、ご検討宜しくお願い致します。

この回答は役に立ちましたか? はい 0   いいえ 0
大久保

投稿メッセージ: 13
登録済み: 17/03/06 02:31
に投稿: 2017/05/19 16:24   こちらへ返答 : crazydiamond47 こちらへ返答 : crazydiamond47
役に立った
クリックして不正使用を報告…   クリックしてこのスレッドに返答 返答
rawTextToSign の "%2F" は "/" のままでよいかと思います。 URI は GET のままで問題ないはずです。
この回答は役に立ちましたか? はい 1   いいえ 0
crazydiamond47

投稿メッセージ: 3
登録済み: 17/04/27 05:07
に投稿: 2017/05/26 13:47   こちらへ返答 : 大久保 こちらへ返答 : 大久保  
クリックして不正使用を報告…   クリックしてこのスレッドに返答 返答
ご回答いただきありがとうございました。

おかげさまで解決できました!

"POST"を"GET"に変更するのと、改行文字を変更することで解決できました。


【68行目】

(修正前)rawTextToSign = "POST" & vbCrLf & ecsaddress & vbCrLf & "%2F" & vbCrLf & rawText

(修正後)rawTextToSign = "GET" & vbLf & ecsaddress & vbLf & "/" & vbLf & rawText



この度は、何度もご助言いただきまして本当にありがとうございました!

また今後ともよろしくお願いいたします!
この回答は役に立ちましたか? はい 0   いいえ 0