2016-05-15 8 views
1

Vor kurzem habe ich angefangen, Python zu lernen. Ich plane, ein Programm für unser Unternehmen zu erstellen, um die Bestellungen von allen Amazon Marketplace-Websites, unserem eigenen BigCommerce-Store und eBay zu verwalten.Amazon Europa MWS Python Boto Verbindung AccessDenied

Jetzt kann ich die Boto-Bibliothek verwenden, um erfolgreich Anfragen an Amazon US, Amazon Kanada und Amazon Mexiko zu senden und alle Bestellinformationen zu erhalten. (Boto ist die einzige Bibliothek, die ich finden konnte, die perfekt mit Amazon MWS funktioniert) Aber wenn ich die gleiche Methode benutze, um Anfragen an Amazon.co.uk zu senden, ist es gescheitert. Hier ist der Beispielcode, mit dem ich die Anfragen gesendet habe.

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) 

Dieser Code funktioniert sehr gut für unsere Geschäfte auf Amazon Kanada, Amazon USA und Amazon Mexiko. Aber wenn ich es für Amazon.co.uk verwende, erhalte ich diese AccessDenied-Codes. (I 100% bestätigen, dass alle marketplaceid, sellersid, accesskeyid und secretkeyid korrekt sind.)

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 

Könnte jemand bitte sagen Sie mir, wie die Anfragen machen Amazon.co.uk über Python Boto Bibliothek oder einem anderen verbinden Python-Bibliotheken? Jede Hilfe wird sehr geschätzt.

Danke

Antwort

1

Ich habe es selbst herausgefunden. Der Schlüssel ist der Code dieser Linie, https://github.com/boto/boto/blob/develop/boto/mws/connection.py#L269

Nach ‚mws.amazonservices.com‘ auf ‚mws-eu.amazonservices.com‘ zu ändern, kann ich den Code verwenden, oben auf Amazon Europa zu verbinden. Bei diesem Problem dreht sich alles um die Amazon MWS-Endpunkte von Amazon. Ich kann Boto verwenden, um eine Verbindung zu Amazon Japan, China, Indien, Europa herzustellen, indem Sie den Anweisungen auf dieser Seite folgen: http://docs.developer.amazonservices.com/en_US/dev_guide/DG_Endpoints.html

Verwandte Themen