2

最近、Pythonを学び始めました。Amazon Marketplace のすべての Web サイト、自社の Bigcommerce ストア、および eBay からの注文を管理するためのプログラムを構築する予定です。

これで、Boto ライブラリを使用して、Amazon US、Amazon Canada、および Amazon Mexico にリクエストを正常に送信し、すべての注文情報を取得できるようになりました。(Boto は、Amazon MWS で完全に動作することがわかった唯一のライブラリです) しかし、同じ方法を使用して Amazon.co.uk にリクエストを送信すると、失敗しました。リクエストの送信に使用したサンプル コードを次に示します。

from boto.mws.connection import MWSConnection
MarketPlaceID = marketplaceid
MerchantID = merchantid
AccessKeyID = accesskeyid
SecretKey = secretkey
mws = MWSConnection(AccessKeyID,SecretKey)
mws.SellerId = MerchantID
mws.Merchant = MerchantID
mws.MarketplaceId = MarketPlaceID
orderstatus = ['PartiallyShipped','Unshipped', 'Shipped']
orders=mws.list_orders(LastUpdatedAfter = '2016-05-01T17:00:00Z', MarketplaceId = [MarketPlaceID],OrderStatus=orderstatus)

このコードは、Amazon Canada、Amazon US、および Amazon Mexico のストアで非常にうまく機能します。しかし、Amazon.co.uk. で使用すると、常にこれらの AccessDenied コードが表示されます。(marketplaceid、sellersid、accesskeyid、secretkeyid がすべて正しいことを 100% 確認します。)

AccessDenied
Traceback (most recent call last):
  File "C:\Python\Amazon Test.py", line 17, in <module>
orders=mws.list_orders(LastUpdatedAfter='2016-05-01T17:00:00Z', MarketplaceId = [MarketPlaceID],OrderStatus=orderstatus)
  File "C:\Users\Yinghao\AppData\Local\Programs\Python\Python35-32\lib\site-packages\boto\mws\connection.py", line 158, in requires
return func(*args, **kw)
  File "C:\Users\Yinghao\AppData\Local\Programs\Python\Python35-32\lib\site-packages\boto\mws\connection.py", line 158, in requires
return func(*args, **kw)
  File "C:\Users\Yinghao\AppData\Local\Programs\Python\Python35-32\lib\site-packages\boto\mws\connection.py", line 177, in wrapper
return func(*args, **kw)
  File "C:\Users\Yinghao\AppData\Local\Programs\Python\Python35-32\lib\site-packages\boto\mws\connection.py", line 196, in wrapper
return func(*args, **kw)
  File "C:\Users\Yinghao\AppData\Local\Programs\Python\Python35-32\lib\site-packages\boto\mws\connection.py", line 177, in wrapper
return func(*args, **kw)
  File "C:\Users\Yinghao\AppData\Local\Programs\Python\Python35-32\lib\site-packages\boto\mws\connection.py", line 196, in wrapper
return func(*args, **kw)
  File "C:\Users\Yinghao\AppData\Local\Programs\Python\Python35-32\lib\site-packages\boto\mws\connection.py", line 177, in wrapper
return func(*args, **kw)
  File "C:\Users\Yinghao\AppData\Local\Programs\Python\Python35-32\lib\site-packages\boto\mws\connection.py", line 139, in wrapper
return func(*args, **kw)
  File "C:\Users\Yinghao\AppData\Local\Programs\Python\Python35-32\lib\site-packages\boto\mws\connection.py", line 81, in wrapper
return func(self, *args, **kw)
  File "C:\Users\Yinghao\AppData\Local\Programs\Python\Python35-32\lib\site-packages\boto\mws\connection.py", line 252, in wrapper
return func(self, request, response, *args, **kw)
  File "C:\Users\Yinghao\AppData\Local\Programs\Python\Python35-32\lib\site-packages\boto\mws\connection.py", line 732, in list_orders
return self._post_request(request, kw, response)
  File "C:\Users\Yinghao\AppData\Local\Programs\Python\Python35-32\lib\site-packages\boto\mws\connection.py", line 323, in _post_request
response.reason, body)
boto.mws.response.ResponseFactory.element_factory.<locals>.DynamicElement:         AccessDenied: Unauthorized 
Access denied

Python Boto ライブラリまたは他の Python ライブラリを介して Amazon.co.uk に接続するためのリクエストを行う方法を教えてください。どんな助けでも大歓迎です。

ありがとう

4

1 に答える 1

3

私は自分でそれを理解しました。キーは、この行のコードですhttps://github.com/boto/boto/blob/develop/boto/mws/connection.py#L269

「mws.amazonservices.com」を「mws-eu.amazonservices.com」に変更した後、上記のコードを使用して Amazon Europe に接続できます。したがって、この問題はすべて Amazon Amazon MWS エンドポイントに関するものです。Boto を使用して、このページhttp://docs.developer.amazonservices.com/en_US/dev_guide/DG_Endpoints.htmlの指示に従って、Amazon 日本、中国、インド、ヨーロッパに接続できます。

于 2016-06-07T04:02:18.863 に答える