- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试调用 eBay API GetMyeBaySelling 我可以获取 Act、Timestamp、Version 和 Build 返回并将其写入 Google 表格,但无论我尝试什么,我都无法返回“项目”列表。响应如下,我需要帮助获取任何其他字段。假设我想遍历并为所有返回的列表返回“BuyItNowPrice”。我已经尝试了下面的代码,但我无处可去。
我更习惯于 Excel VBA,但尝试过渡到 Google Sheets Script。
API 响应:
[20-09-15 19:52:46:012 BST] Logging output too large. Truncating output. <?xml version="1.0" encoding="UTF-8"?>
<GetMyeBaySellingResponse xmlns="urn:ebay:apis:eBLBaseComponents"><Timestamp>2020-09-15T18:52:45.627Z</Timestamp><Ack>Success</Ack><Version>1163</Version><Build>E1163_CORE_APISELLING_19187371_R1</Build><ActiveList><ItemArray><Item><BuyItNowPrice currencyID="GBP">3.99</BuyItNowPrice><ItemID>##########</ItemID><ListingDetails><StartTime>2011-09-16T10:51:54.000Z</StartTime><ViewItemURL>https://www.ebay.co.uk/itm/???????????????????????????-/############</ViewItemURL><ViewItemURLForNaturalSearch>http://cgi.ebay.co.uk/????????item=############&category=51169&cmd=ViewItem</ViewItemURLForNaturalSearch></ListingDetails><ListingDuration>GTC</ListingDuration><ListingType>StoresFixedPrice</ListingType><Quantity>70</Quantity><SellingStatus><CurrentPrice currencyID="GBP">3.99</CurrentPrice></SellingStatus><ShippingDetails><ShippingServiceOptions><ShippingServiceCost currencyID="GBP">0.0</ShippingServiceCost></ShippingServiceOptions><ShippingType>Flat</ShippingType></ShippingDetails><TimeLeft>PT15H59M9S</TimeLeft><Title>????????????????????????????</Title><WatchCount>3</WatchCount><QuestionCount>3</QuestionCount><QuantityAvailable>0</QuantityAvailable><SKU>???????</SKU><PictureDetails><GalleryURL>http://thumbs.ebaystatic.com/pict/???????????_5.jpg</GalleryURL></PictureDetails><NewLeadCount>3</NewLeadCount><ClassifiedAdPayPerLeadFee currencyID="GBP">0.0</ClassifiedAdPayPerLeadFee><SellerProfiles><SellerShippingProfile><ShippingProfileID>??????????</ShippingProfileID><ShippingProfileName>Flat:Royal Mail 2nd(Free),Royal Mail Tra,Same#79</ShippingProfileName></SellerShippingProfile><SellerReturnProfile><ReturnProfileID>????????????</ReturnProfileID><ReturnProfileName>Returns Accepted,Buyer,30 days#2</ReturnProfileName></SellerReturnProfile><SellerPaymentProfile><PaymentProfileID>124284320022</PaymentProfileID><PaymentProfileName>PayPal#0</PaymentProfileName></SellerPaymentProfile></SellerProfiles><HideFromSearch>true</HideFromSearch><ReasonHideFromSearch>OutOfStock</ReasonHideFromSearch><OutOfStockControl>true</OutOfStockControl></Item><Item>
我的代码:
var response = UrlFetchApp.fetch(site, options);
var document = XmlService.parse(response);
Logger.log(response);
var root = document.getRootElement();
var NS = XmlService.getNamespace("urn:ebay:apis:eBLBaseComponents");
var ack = root.getChildText('Ack', NS);
var time = root.getChildText('Timestamp', NS);
var version = root.getChildText('Version', NS);
var build = root.getChildText('Build', NS);
var shortmessage = root.getChildText('ShortMessage', NS);
//Logger.log(shortmessage);
var longmessage = root.getChildText('LongMessage', NS);
//Logger.log(longmessage);
var itms = root.getChild('ActiveList', NS).getChild('ItemArray', NS).getChild('BuyItNowPrice', NS);
Logger.log(itms + '1st Log');
for (var i = 0; i < itms.length; i++) {
var item = itms[i].getChild('Item', NS).getText();
Logger.log(item + '2nd Log');
}
//sheet.getRange('A2').setValue(xml);
var LstSheet = sheet.getLastRow()+1
sheet.getRange(LstSheet, 1).setValue([ack]);
sheet.getRange(LstSheet, 2).setValue([time]);
sheet.getRange(LstSheet, 3).setValue([version]);
sheet.getRange(LstSheet, 4).setValue([build]);
sheet.getRange(LstSheet, 5).setValue([shortmessage]);
sheet.getRange(LstSheet, 6).setValue([longmessage]);
提前致谢
var itms = root.getChild('ActiveList', NS).getChild('ItemArray', NS).getChildren();
for (var i = 0; i < itms.length; i++) {
var item = itms[i].getChild('ItemID', NS).getText();
var title = itms[i].getChild('Title', NS).getText()
var url = itms[i].getChild('ListingDetails', NS).getChild('ViewItemURLForNaturalSearch', NS).getText()
var imgurl = itms[i].getChild('PictureDetails', NS).getChild('GalleryURL', NS).getText()
sheet.appendRow([item, title, url, imgurl]);
最佳答案
我相信你的目标如下。
BuyItNowPrice
的值来自 ItemArray
使用 Google Apps 脚本。 response
的 var response = UrlFetchApp.fetch(site, options);
在“API 响应:”中。 root.getChild('ActiveList', NS).getChild('ItemArray', NS).getChild('BuyItNowPrice', NS)
返回 null
.在这种情况下,要求是var itms = root.getChild('ActiveList', NS).getChild('ItemArray', NS).getChildren();
. var item = itms[i].getChild('BuyItNowPrice', NS).getText();
. var itms = root.getChild('ActiveList', NS).getChild('ItemArray', NS).getChild('BuyItNowPrice', NS);
Logger.log(itms + '1st Log');
for (var i = 0; i < itms.length; i++) {
var item = itms[i].getChild('Item', NS).getText();
Logger.log(item + '2nd Log');
}
到:
var itms = root.getChild('ActiveList', NS).getChild('ItemArray', NS).getChildren();
for (var i = 0; i < itms.length; i++) {
var item = itms[i].getChild('BuyItNowPrice', NS).getText();
Logger.log(item);
}
使用“API Response:”中的 XML 数据时,示例脚本如下所示。
function myFunction() {
var response = `<?xml version="1.0" encoding="UTF-8"?>
<GetMyeBaySellingResponse
xmlns="urn:ebay:apis:eBLBaseComponents">
<Timestamp>2020-09-15T18:52:45.627Z</Timestamp>
<Ack>Success</Ack>
<Version>1163</Version>
<Build>E1163_CORE_APISELLING_19187371_R1</Build>
<ActiveList>
<ItemArray>
<Item>
<BuyItNowPrice currencyID="GBP">3.99</BuyItNowPrice>
<ItemID>##########</ItemID>
<ListingDetails>
<StartTime>2011-09-16T10:51:54.000Z</StartTime>
<ViewItemURL>https://www.ebay.co.uk/itm/???????????????????????????-/############</ViewItemURL>
<ViewItemURLForNaturalSearch>http://cgi.ebay.co.uk/????????item=############&category=51169&cmd=ViewItem</ViewItemURLForNaturalSearch>
</ListingDetails>
<ListingDuration>GTC</ListingDuration>
<ListingType>StoresFixedPrice</ListingType>
<Quantity>70</Quantity>
<SellingStatus>
<CurrentPrice currencyID="GBP">3.99</CurrentPrice>
</SellingStatus>
<ShippingDetails>
<ShippingServiceOptions>
<ShippingServiceCost currencyID="GBP">0.0</ShippingServiceCost>
</ShippingServiceOptions>
<ShippingType>Flat</ShippingType>
</ShippingDetails>
<TimeLeft>PT15H59M9S</TimeLeft>
<Title>????????????????????????????</Title>
<WatchCount>3</WatchCount>
<QuestionCount>3</QuestionCount>
<QuantityAvailable>0</QuantityAvailable>
<SKU>???????</SKU>
<PictureDetails>
<GalleryURL>http://thumbs.ebaystatic.com/pict/???????????_5.jpg</GalleryURL>
</PictureDetails>
<NewLeadCount>3</NewLeadCount>
<ClassifiedAdPayPerLeadFee currencyID="GBP">0.0</ClassifiedAdPayPerLeadFee>
<SellerProfiles>
<SellerShippingProfile>
<ShippingProfileID>??????????</ShippingProfileID>
<ShippingProfileName>Flat:Royal Mail 2nd(Free),Royal Mail Tra,Same#79</ShippingProfileName>
</SellerShippingProfile>
<SellerReturnProfile>
<ReturnProfileID>????????????</ReturnProfileID>
<ReturnProfileName>Returns Accepted,Buyer,30 days#2</ReturnProfileName>
</SellerReturnProfile>
<SellerPaymentProfile>
<PaymentProfileID>124284320022</PaymentProfileID>
<PaymentProfileName>PayPal#0</PaymentProfileName>
</SellerPaymentProfile>
</SellerProfiles>
<HideFromSearch>true</HideFromSearch>
<ReasonHideFromSearch>OutOfStock</ReasonHideFromSearch>
<OutOfStockControl>true</OutOfStockControl>
</Item>
</ItemArray>
</ActiveList>
</GetMyeBaySellingResponse>`;
var document = XmlService.parse(response);
var root = document.getRootElement();
var NS = XmlService.getNamespace("urn:ebay:apis:eBLBaseComponents");
var itms = root.getChild('ActiveList', NS).getChild('ItemArray', NS).getChildren();
for (var i = 0; i < itms.length; i++) {
var item = itms[i].getChild('BuyItNowPrice', NS).getText();
Logger.log(item);
}
}
BuyItNowPrice
的值。 .在您的新问题中,您要检索
ItemID
的值,
Title
,
ListingDetails.ViewItemURLForNaturalSearch
和
PictureDetails.GalleryURL
.从你最初的问题,我没有注意到你的新问题。
appendRow
在循环中使用。在这种情况下,工艺成本会很高。所以我想建议把值放在一个数组中,然后把这个数组放到工作表中。
var itms = root.getChild('ActiveList', NS).getChild('ItemArray', NS).getChildren();
var values = itms.map(e => {
var item = e.getChild('ItemID', NS);
var title = e.getChild('Title', NS);
var url = e.getChild('ListingDetails', NS).getChild('ViewItemURLForNaturalSearch', NS);
var imgurl = e.getChild('PictureDetails', NS).getChild('GalleryURL', NS);
return [item ? item.getText() : "", title ? title.getText() : "", url ? url.getText() : "", imgurl ? imgurl.getText() : ""];
});
sheet.getRange(sheet.getLastRow() + 1, 1, values.length, values[0].length).setValues(values);
关于xml - eBay API 将 XML 解析为 Google 脚本的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63908586/
对于移动应用程序,我们希望集成 eBay Kleinanzeigen (www.ebay-kleinanzeigen.de) API。目标是(API GET)获取某个(德国)邮政编码中的所有分类广告。
我正在使用 ebays 开发人员程序列出 ebays 类别列表,我想做的是使用 ebays API 调用导入此列表,我的问题是,我正在重新发明轮子以创建插入语句列表导入所有类别或者是否已经在某处创建了
我在我的 AddFixedPriceItem 请求中指定了 SKU,但响应没有返回 SKU(尽管 SKU 在架构中指定)。这是一个问题,因为我使用的是大型商家服务并且可以一次提交多个项目。如果一批中的
我想使用 eBay API 获取 "Deals & Special Offers" 中可用的交易网站的(每日优惠)部分。但我找不到任何可以让我这样做的函数或函数参数。看来我只能检索主站点上可用的数据,
如何让 Ebay API 返回描述? 我有一些代码可以进行 API 调用,如下所示: http://svcs.ebay.com/services/search/FindingService/v1? c
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this qu
我正在尝试从 eBay 中提取付款日期为空的订单列表。这是我当前的查询: http://developer.ebay.com/devzone/xml/docs/reference/ebay/getor
有谁有使用 Ebay API 的经验吗?我基本上是想在他们的网站上列出一家商店的所有商品,所以这不会是公共(public)服务用途。 GetSellerList 方法似乎是要走的路,但 Ebay 网站
我的场景:我有一位客户拥有一家带有自定义类别的 eBay 商店。他们想在他们的网站上列出他们待售的商品。他们希望此列表可以按自定义类别进行过滤。 我已经搜索了几天了,但我仍然有点不确定继续的最佳方法。
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 3 年前。 Improve
调用 eBay AddItemRequest API 时出现以下错误 缺少项目特定类型。将类型添加到此列表,输入有效值,然后重试。21919303 XXXXXXXXXXX
我使用 findCompletedItems 来查找与特定类别(男鞋)中的一组特定关键字相匹配的所有商品,并且我可以轻松指定我只想要特定鞋子的所有商品大小,使用 aspectFilter: U
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this qu
我正在尝试使用 eBay API Explorer 上的 eBay 用户身份验证 token 调用此 API: https://api.ebay.com/sell/inventory/v1/inven
我最近从 HTTP 转移到 HTTPS,但我收到安全警告,因为来自 ebay API 的图片仍在通过 HTTP 传输。 API 用户是否知道通过 HTTPS 获取图库 url 或 图片 url 的方法
我有一个 eBay 的 auth_token,我想获取该 token 的到期日期。 我知道它的重复问题,但没有为该问题提供答案: https://stackoverflow.com/questions
我是 eBay API 的新手,目前使用 PHP 进行开发,我已经设法使用 GetItem 将基于商品 ID 的订单详细信息导入到我网站的数据库中。但我现在想做的是将用户帐户链接到我的网站并将他们的列
我刚开始使用 eBay API,但找不到满足我需求的方法。此外,这通常应该非常简单。 我想知道是否可以将任何 eBay URL 传递给 API (PHP) 并获得添加了我的附属参数的新链接。 它的工作
我一直在阅读 eBay 开发者网络,但我一直想不出如何完成简单的任务,即通过他们的API。 任何人都可以帮助我实现这一目标。 非常感谢。 编辑: 我试过使用 HTTP 方法: http://open.
我正在尝试使用 api davidtsadler/ebay-sdk-php 获取我的订单(已售商品)列表 https://github.com/davidtsadler/ebay-sdk-php 但我
我是一名优秀的程序员,十分优秀!