Alphavantage 的谷歌脚本给出了奇怪的结果

问题描述

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

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

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

我不知道为什么会这样。

/**
 * 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;
}

解决方法

尝试将 {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;
}

输出:

enter image description here

参考:

UrlFetchApp