質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.61%

  • JavaScript

    15922questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • Python

    7482questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • API

    1485questions

    APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

mwsのGetLowestPricedOffersForASINでリクエストが失敗する

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 165

pockygame

score 7

2時間以上調べても分からず、自分では解決出来なかったので質問させてください。。。

AmazonのmwsというAPIを利用しコードを書いているのですが、
GetLowestPricedOffersForASINというAPIでリクエストを送ったところ、
以下のレスポンスが返ってきて、エラーとなりました。

<Response [400]>
Failed processing arguments of org.jboss.resteasy.spi.metadata


Scratchpadでは正しくレスポンスが返ってきており、
また他のGetMyFeesEstimateなどのmwsのAPIでコードを書いてリクエストを送ると機能します。
以下に今回のエラーが返ってきたコードを掲載します。

# coding:utf-8
import datetime
import os
import sys, codecs
import traceback
import random
import math
import requests
import base64
import hashlib
import hmac
import json
from urllib import quote
import re

DOMAIN = 'mws.amazonservices.jp'
ENDPOINT = '/Products/2011-10-01'

def datetime_encode(dt):
    return dt.strftime('%Y-%m-%dT%H:%M:%SZ')

timestamp = datetime_encode(datetime.datetime.utcnow())
data = {
    'AWSAccessKeyId': MY_ACCESS_KEY_ID,
    'Action': 'GetLowestPricedOffersForASIN',
    'SellerId': MY_SELLER_ID,
    'SignatureMethod': 'HmacSHA256',
    'SignatureVersion': '2',
    'Timestamp': timestamp ,
    'Version': '2011-10-01',
    'MarketplaceId': 'A1VC38T7YXB528' ,
    'ASIN': "B013APQBJU" ,
    'ItemCondition': "New" ,
}
#dataを元にリクエストクエリを作成
query_string = '&'.join('{}={}'.format(
    n, quote(v, safe='%')) for n, v in sorted(data.items()))
canonical = '\n'.join(['POST', DOMAIN, ENDPOINT, query_string])
h = hmac.new(MY_ACCESS_SECRET.encode('utf-8'),
             canonical.encode('utf-8'),
             hashlib.sha256)
signature = quote(base64.b64encode(h.digest()), safe='')
url = 'https://{}{}?{}&Signature={}'.format(
    DOMAIN, ENDPOINT, query_string, signature)
response = requests.post(url)
print(response)
print(response.text)

同様の問題に躓き、解決されている方を探して見つけてコードを拝見したのですが、
どのように解決したのか分からずでした。
https://github.com/ericblade/mws-advanced/issues/17

どのようなご指摘、アドバイスでも構いませんのでコメントいただけると大変助かります。
お手数ですが、よろしくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    <tr><td>の表にしたい

    今、グルナビのレストラン検索apiを使っています。 初めての利用で色々と困っています。 一つがapiで入手したデータをウェブで表示する際のことです。 <tr><td>を使えば

  • 解決済

    cloudstack-cloudmonkeyのpython3化 hashlib

    cloudnをAPIで利用するために、python2 で書かれているcloudstack-cloudmonkey をpython3で動かそうとしているのですが、途中でつまずいていま

  • 受付中

    tempfileを作ってそれをpost送信したい

     目的 とあるサイトのhtmlソースをファイルオブジェクトにしてpost送信したい。  試したこと このコードを実行するとtf.write()のところでTypeError

  • 解決済

    PythonのFlaskでのrender_templateで画像ファイルの表示方法

    前提・実現したいこと PythonのFlaskのフレームワークを用いて、QRコードを作成して、それを表示させるプログラムを作成しています。(python3) わからないこと QRコ

  • 解決済

    pythonでheaders['Last-Modified']を取得して日付計算を行いたい

    pythonでサーバに置いてあるファイル日付をheaders['Last-Modified']で取得しました。取得した結果です。→Mon, 13 Nov 2017 07:50:17

  • 解決済

    【Python】hmacの計算が正しく行えない

    Amazon MWSに接続するために以下のコードを書きました。 MWSとは決められたリクエストを行うと、Amazonの商品データなど欲しいデータを返してくれるものです。 MWSでは

  • 解決済

    zaifの現物取引API(get_info)でエラー

     前提・実現したいこと Google Apps Scriptを利用して自動売買のプログラムを実現したいと思っております。 テストがてら取引APIのget_infoを利用しようとプロ

  • 解決済

    PHPでAmazonの商品を検索する

    PHPでAmazonの商品を検索してみたいのですが、どうしても400エラーが帰ってきてしまいます。公式にもサンプルがないのでなぜ遮断されているかわかりません。もしわかる方がいらっし

同じタグがついた質問を見る

  • JavaScript

    15922questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • Python

    7482questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • API

    1485questions

    APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。