微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

UrlFetchApp 在 Apps Script 中工作,但在 Google Sheets 中不工作

如何解决UrlFetchApp 在 Apps Script 中工作,但在 Google Sheets 中不工作

我构建了一个调用 API 并返回数据的简单函数。我将在下面附上代码。当我使用“VGI”运行 test() 函数时,它每次尝试都能完美运行。当我在 Google 表格中调用 =DIVIDEND_HISTORY("VGI") 时,90% 的情况下都会出现 403 身份验证错误。是什么导致它在工作表和脚本中以不同的方式运行?有什么我可以做的吗?当实际 API 为:

https://seekingalpha.com/api/v3/symbols/vgi/dividend_history?group_by=quarterly&sort=-date

代码

function test() {
  Logger.log(dividend_history("VGI"));
}

function dividend_history(sym) {

  var sym1 = String(sym).toLowerCase();

  var url = "https://seekingalpha.com/api/v3/symbols/"+sym1+"/dividend_history?group_by=quarterly&sort=-date";

  var jsonData = JSON.parse(UrlFetchApp.fetch(url).getContentText()).data;

  var processed_data = jsonData.map(({...item}) => item.attributes).map(({split_adj_factor,declare_date,year,date,record_date,amount,...item}) => item);


  return [[processed_data[0].ex_date,processed_data[0].pay_date,processed_data[0].adjusted_amount,processed_data[0].freq]];
}

解决方法

我已经尝试过这个,它在第一次运行时有效,但在脚本的每次成功运行中都失败了。这意味着函数是在脚本上还是在工作表上运行都没有关系。

对此的可能假设是,服务器 (seekingalpha) 在运行脚本一次后阻止了您的 IP,因为它检测到您的会话/请求是生成的机器人/脚本。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。