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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...