UrlFetchApp 在 Apps 脚本中工作,但不在 Google 表格中工作
UrlFetchApp working in Apps Script but not Google Sheets
我构建了一个调用 API 和 returns 数据的简单函数。我将在下面附上代码。当我 运行 带有“VGI”的 test() 函数时,每次我尝试它时它都能完美运行。当我在 google 工作表中调用 =DIVIDEND_HISTORY("VGI")
时,我收到 403 身份验证错误,90% 的时间都被阻止了。是什么导致工作表与脚本中的 运行 不同?有什么我可以做的吗?当实际 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]];
}
我试过了,它在第一个 运行 上运行,但在脚本的每个后续 运行 上都失败了。这意味着函数是 运行 在脚本上还是在 sheet.
上并不重要
对此的可能假设是服务器 (seekingalpha) 在 运行 脚本一次后阻止您的 IP,因为它检测到您的 session/request 作为 bot/script 生成。
我构建了一个调用 API 和 returns 数据的简单函数。我将在下面附上代码。当我 运行 带有“VGI”的 test() 函数时,每次我尝试它时它都能完美运行。当我在 google 工作表中调用 =DIVIDEND_HISTORY("VGI")
时,我收到 403 身份验证错误,90% 的时间都被阻止了。是什么导致工作表与脚本中的 运行 不同?有什么我可以做的吗?当实际 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]];
}
我试过了,它在第一个 运行 上运行,但在脚本的每个后续 运行 上都失败了。这意味着函数是 运行 在脚本上还是在 sheet.
上并不重要对此的可能假设是服务器 (seekingalpha) 在 运行 脚本一次后阻止您的 IP,因为它检测到您的 session/request 作为 bot/script 生成。