[英]How to add images to existing item with ebay API
我正在为Python使用ebay-sdk。 我使用以下代码成功将一些图像上传到了eBay图片服务(EPS):
from ebaysdk.trading import Connection as Trading
api = Trading(config_file='ebay.yaml', siteid=71)
def upload_images(image_url):
response = api.execute('UploadSiteHostedPictures', {"ExternalPictureURL": image_url,
"PictureSet": "Supersize"})
return response.content
upload_images(MY_IMG_URL)
eBay返回上传图像的URL。
但是,如何将图像添加到现有的eBay优惠中? 我必须使用ReviseItem吗?
将ebay-sdk用于python的示例很好。
编辑:
def revise_image(self, item_id):
myitem = {
"Item": {
"Country": "DE",
"ItemID": item_id,
"PictureDetails": [
{"PictureURL": MY_IMG1},
{"PictureURL": MY_IMG2},
{"PictureURL": MY_IMG3}
]
}
}
response = self.api.execute('ReviseFixedPriceItem', myitem)
我按照建议进行了更改,但它仍然只更改了主图像。 MY_IMG3成为主映像。 清单未附加MY_IMG1和MY_IMG2。
这可行。
def verifyAddItem(args):
#"""http://www.utilities-online.info/xmltojson/#.UXli2it4avc """
try:
api = Trading(debug=args.debug, siteid=site_id, appid=app_id, token=token_id, config_file=None, certid=cert_id, devid=dev_id)
myitem = {
"Item": {
"Country": "GB",
"Description": description,
"ItemID": item_to_revise,
"PictureDetails": {
"PictureURL": "http://www.itcircleconsult.com/eb2017/4a.png"
},
}
}
api.execute('ReviseFixedPriceItem', myitem)
dump(api)
我一直在eBay和Python上工作很多。
在这里查看一些工作示例。.我经常将它们拆开,然后迅速将它们放回一起,但您可能会发现一些用处。
有一个I-way Checker和一些BS4翻录以修改项目
https://github.com/johnashu/PRODUCTION/tree/master/Python/eBay%20API%20KIT%20-%20Maffas%20-%202017
另一个有用的事情是在这里查看eBay API调用索引:
http://developer.ebay.com/devzone/xml/docs/Reference/eBay/index.html#CallIndex
然后使用XML转JSON转换器将所需的调用更改为pythong中更易读的格式。
这里:
http://www.utilities-online.info/xmltojson/#.WTW_P8b-vct
有关添加图像和主持的注意事项:
https://developer.ebay.com/devzone/xml/docs/reference/ebay/UploadSiteHostedPictures.html
注意:从889版开始,在创建列表之前,无需使用此调用来上传自托管图像。 现在,您可以使用AddItem或AddFixedPriceItem调用在Item.PictureDetails.PictureURL中一次最多指定12个自托管或EPS托管URL。 但是,您必须使用UploadSiteHostedPictures调用来上传二进制附件。
假定的JSON需要此功能..除非需要花费一些时间将图片填充到项目中?
我们俩都[失踪]-小学生错误!
{
"Item": {
"PictureDetails": [
{ "PictureURL": "http://pics.ebay.com/aw/pics/dot_clear.gif" },
{ "PictureURL": "fds" },
{ "PictureURL": "fds" }
]
}
}
我知道这个问题已经很老了,但是我偶然发现了这个页面,因为我遇到了同样的问题并找到了正确的解决方案。
如以上评论所述,johnashu当前发布的解决方案不起作用。 这是因为ebaysdk.utils.dict2xml转换字典的方式。
上面的解决方案:
{
"Item": {
"PictureDetails": [
{ "PictureURL": "http://pics.ebay.com/aw/pics/dot_clear.gif" },
{ "PictureURL": "fds" },
{ "PictureURL": "fds" }
]
}
}
输出以下XML:
<Item>
<PictureDetails>
<PictureURL>http://pics.ebay.com/aw/pics/dot_clear.gif</PictureURL>
</PictureDetails>
<PictureDetails>
<PictureURL>fds</PictureURL>
</PictureDetails>
<PictureDetails>
<PictureURL>fds</PictureURL>
</PictureDetails>
</Item>
其中包括多个<PictureDetails>
而不是一个父标记,并且多个PictureURL
标记作为子标记。
正确的格式是:
{
"Item": {
"PictureDetails": {
'PictureURL': ['http://pics.ebay.com/aw/pics/dot_clear.gif', 'fds', 'fds']
}
}
}
这使我们的XML输出为:
<Item>
<PictureDetails>
<PictureURL>http://pics.ebay.com/aw/pics/dot_clear.gif</PictureURL>
<PictureURL>fds</PictureURL>
<PictureURL>fds</PictureURL>
</PictureDetails>
</Item>
符合ReviseItem API文档中描述的格式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.