【问题标题】:Google Apps Script - Fetch data from third party API with date parameterGoogle Apps 脚本 - 使用日期参数从第三方 API 获取数据
【发布时间】:2019-09-09 07:19:13
【问题描述】:

我的一个供应商创建了一个 API,我可以使用它来提取数据。我正在尝试为此使用谷歌应用程序脚本,因为我可以轻松地安排数据提取。

我以前使用过 UrlFetchApp,但我对此感到迷茫,因为我必须在其中传递一个附加参数来确定日期 - 我不知道该怎么做,如果您能帮助解决这个问题,我将不胜感激。

给我的指示如下:

url = "https://xxxxx.com/api/leads/"
method = POST
//Request JSON format: (date format should be ‘Y-m-d’)
{"date":"2019-08-21"}

除了谷歌搜索之外,我还尝试了各种迭代,将日期参数添加到 UrlFetchApp 的选项中,并尝试将其附加到 URL 字符串中。

这是我目前所拥有的:

function myFunction() {
  var pullDate = new Date().toISOString().split('T')[0];  
  var dateParams = {"date": pullDate};
  var url = "https://xxxxx.com/api/leads/";
  var options = {
    "method" : "POST",
    "contentType" : "application/json"
  }  

  var response = UrlFetchApp.fetch(url, options);
  Logger.log(response.getContentText());
}

这是我得到的回应:

[19-09-09 12:44:36:586 IST] {"result":"date is empty!"}

预期的响应是这样的:

{"result":[
{"count":"55","model":"ABC","date":"2019-09-09"},
{"count":"2","model":"DEF","date":"2019-09-09"},
{"count":"48","model":"XYZ","date":"2019-09-09"}
]}

感谢您帮助解决这个问题!

【问题讨论】:

  • payload在哪里?
  • 我不确定如何添加它。阅读文档,看来我必须将其添加到选项变量中,但我不确定要在其中包含什么

标签: javascript json google-apps-script urlfetch


【解决方案1】:

问题:

  • 请求中缺少payload(或请求正文)。

片段:

  • 您可以在options 中包含payload
  var options = {
    "method" : "POST",
    "contentType" : "application/json",
    "payload": JSON.stringify(dateParams)
  }  

【讨论】:

  • 感谢您的回答!当我使用 JSON stringify 时它起作用了:“payload”:JSON.stringify(dateParams)
  • @Abhay 太好了。将其添加到我的答案中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-08
  • 1970-01-01
  • 1970-01-01
  • 2016-11-15
  • 1970-01-01
  • 2014-02-28
相关资源
最近更新 更多