2016-05-15 48 views
1

最近,我開始學習Python。我計劃爲我們公司制定一個計劃,以管理所有亞馬遜商城網站,我們自己的Bigcommerce商店和eBay的訂單。亞馬遜歐洲MWS Python博託連接AccessDenied

現在我可以使用Boto庫成功向亞馬遜美國,亞馬遜加拿大和亞馬遜墨西哥發送請求,並獲取所有訂單信息。 (Boto是我能找到的唯一與亞馬遜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.co.uk時,我一般會獲得這些AccessDenied代碼。 (我100%確認所有marketplaceid,sellersid,accesskeyid和secretkeyid是正確的。)

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程式庫或其他連接到Amazon.co.uk Python庫?任何幫助將得到重大讚賞。

謝謝

回答

1

我想出了自己。關鍵是這一行的代碼,https://github.com/boto/boto/blob/develop/boto/mws/connection.py#L269

將'mws.amazonservices.com'更改爲'mws-eu.amazonservices.com'後,我可以使用上面的代碼連接到亞馬遜歐洲。所以這個問題都是關於亞馬遜亞馬遜MWS端點。按照本頁的說明,我可以使用博託連接到亞馬遜日本,中國,印度,歐洲,http://docs.developer.amazonservices.com/en_US/dev_guide/DG_Endpoints.html