使用Google Apps Script对ebay API的XML请求返回API调用getebayofficial ti

XML requests to eBay's API using Google Apps Script returns 'The API call "GeteBayOfficialTime" is invalid or not supported in this release' error

本文关键字:API 返回 请求 调用 getebayofficial ti XML Script Apps ebay 使用      更新时间:2023-09-26

我正确使用的函数返回一条消息说," API调用" getebay官员时间"无效或在此版本中不支持。"

function GetTime() {
    var site = "https://api.ebay.com/ws/api.dll";
    var xml = "<?xml version='"1.0'" encoding='"utf-8'"?> '
           <GeteBayOfficialTimeRequest xmlns='"urn:ebay:apis:eBLBaseComponents'"> '
             <RequesterCredentials> '
               <eBayAuthToken>*******</eBayAuthToken> '
             </RequesterCredentials> '
           </GeteBayOfficialTimeRequest>";
    var payload =
      {
        "Content-Type": "text/xml",
        "X-EBAY-API-SITEID": "0",
        "X-EBAY-API-COMPATIBILITY-LEVEL": "759",
        "X-EBAY-API-CALL-NAME": "GeteBayOfficialTime",
        "XML": xml
      };
  var options = 
    {
      method:"POST",
      payload:payload
    };
  var response = UrlFetchApp.fetch(site, options);
  var xml = response.getContentText();
};

经过一番搜索,我发现这个问题的主要原因是不正确的头,然而,我不确定如何设置它们,而不是目前实现的

将头和xml都传递到请求的有效负载中。报头应该通过它们自己的字段传入。下面更新的代码应该可以为您工作。

function GetTime() {
    var site = 'https://api.ebay.com/ws/api.dll';
    var xml = '<?xml version="1.0" encoding="utf-"?> '
        <GeteBayOfficialTimeRequest xmlns="urn:ebay:apis:eBLBaseComponents"> '
            <RequesterCredentials> '
                <eBayAuthToken>*********</eBayAuthToken> '
            </RequesterCredentials> '
        </GeteBayOfficialTimeRequest>';
    var headers = {
        'Content-Type': 'text/xml',
        'X-EBAY-API-SITEID': '0',
        'X-EBAY-API-COMPATIBILITY-LEVEL': '861',
        'X-EBAY-API-CALL-NAME': 'GeteBayOfficialTime'
    };
    var options = {
        method: 'POST',
        headers: headers,
        payload: xml
    };
    var response = UrlFetchApp.fetch(site, options);
    var xml = response.getContentText();
};