【问题标题】:Google script for Alphavantage gives weird resultsAlphavantage 的谷歌脚本给出了奇怪的结果
【发布时间】:2020-12-31 18:18:35
【问题描述】:

我正在尝试制作一个我想在 Google 表格中使用的 google 脚本。 我在 youtube 上观看了一个教程视频,我认为我的脚本运行良好。

但是随后发生了两件奇怪的事情,我不知道为什么。

下面是我的代码,这段代码正是我想要的。 它在谷歌表格和日志中显示 IBM 的 EPS。 但是,当我将 APIkey 从“演示”更改为我自己的 APIkey 时,它就不再工作了。 那时它仍在日志中显示 EPS,但我会在 Google 表格中获得一个空单元格。

我不知道为什么会这样。

/**
 * Imports api data from alphavantage 
 * @customfunction
 */
function apiav(a) {
  var res = UrlFetchApp.fetch(
    'https://www.alphavantage.co/query?function=OVERVIEW&symbol=IBM&apikey=demo'
  );
  var content = res.getContentText();
  var json = JSON.parse(content);
  var overviewvalue = json['EPS'];
  Logger.log(overviewvalue);
  return overviewvalue;
}

【问题讨论】:

  • 看来URL中的apikey无所谓。我尝试访问 URL 并用一些随机数更改了 apikey,结果仍然与demo 相同。您能否还包括将数据写入工作表的部分?
  • 嗨 Nikko,我去工作表并将“=apiav("J")" 放入单元格中。其中 J 是一些随机参数。当我使用演示 apikey 时,我用自己的 apikey 得到结果“8.823”,它是空白的。没有其他代码可以包含,这就是我所拥有的一切。奇怪的是,如果我在浏览器中同时使用这两个链接,我会得到完全相同的网页。所以对我来说,完全不清楚为什么谷歌表格没有给出相同的输出。

标签: javascript json api google-apps-script alpha-vantage


【解决方案1】:

尝试将{validateHttpsCertificates: false} 添加到您的 UrlFetchApp.fetch() 以忽略 HTTPS 请求的任何无效证书。

您的代码应如下所示:

function apiav(a) {
  var res = UrlFetchApp.fetch('https://www.alphavantage.co/query?function=OVERVIEW&symbol=IBM&apikey=ABCDEFGH', {validateHttpsCertificates: false});
  var content = res.getContentText();
  var json = JSON.parse(content);
  var overviewvalue = json['EPS'];
  Logger.log(overviewvalue);
  return overviewvalue;
}

输出:

参考:

UrlFetchApp

【讨论】:

    猜你喜欢
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多