【问题标题】:fetch multiple api requests, parse once, in Google Apps script, doe获取多个 api 请求,解析一次,在 Google Apps 脚本中,doe
【发布时间】:2018-03-03 03:05:32
【问题描述】:

我在使用 UrlFetchApp 的 fetchAll 方法时遇到问题。

我目前正在运行多个函数来从少数几个链接中收集 api 数据,这些链接的 api 操作略有不同。所有函数都在一致的 JSON 字段下返回和解析数据。我想要一个函数来一次检索 api 数据,解析一次,输出一次。我认为 fetchAll 将是这样做的更好方法。输出将是电子表格。

以下是为保护隐私而简化的脚本变体。我在第 14 行不断收到“无法找到方法 fetchAll(object,object)”错误。我尝试使用 UrlFetchApp.fetchAll[eth,btc] 获取 url,这让我通过了错误但随后“无法调用方法 'getContentText'未定义”。

似乎无法从Google Apps documentation 中找出正确的方法。到目前为止,谷歌讨论组没有帮助。

我是否需要将解析作为对象合并到 fetchAll 方法中?

function dailyhx() {
  var ss = SpreadsheetApp.getActive().getSheetByName('DailyHx');  
  var eth = {
    'url' : 'https://min-api.cryptocompare.com/data/histoday?fsym=ETH&tsym=USD&limit=10',
    'method' : 'get',
    'contentType' : 'application/json',
  };
  var btc = {
    'url' : "https://min-api.cryptocompare.com/data/histoday?fsym=BTC&tsym=USD&limit=10",
    'method' : 'get',
    'contentType' : 'application/json',
  };
  var mph = UrlFetchApp.fetchAll(eth, btc)
  var j1 = JSON.parse(mph.getContentText());
  Loager.log(j1)
}

【问题讨论】:

  • 这是做什么的?奇怪的好奇
  • Doe=虽然。例如,“我希望脚本能够工作,但它不会,doe。”
  • 这么想不想假设母鹿。
  • 拼写不是“doh”吗?

标签: json google-apps-script google-sheets


【解决方案1】:

UrlFetchApp.fetchAll() 函数只需要一个必须是数组的参数。

所以替换这个:

var mph = UrlFetchApp.fetchAll(eth, btc);

用这个:

var requests = [eth, btc];
var mph = UrlFetchApp.fetchAll(requests);

【讨论】:

    猜你喜欢
    • 2019-12-09
    • 1970-01-01
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多