我正在使用 TD Ameritrade 的 API 来提取股票行情信息。该脚本需要身份验证才能提取实时数据。 CURL命令如下:
curl -X GET --header "Authorization: "--header "Authorization: Bearer ""https://api.tdameritrade.com/v1/marketdata/AAPL/quotes?apikey= "
我正在使用 Google 脚本从 API 读取数据,进行一些计算,然后将数据写入 Google 表格。下面是用于验证的脚本,它不起作用。请注意,此处未显示我的访问 token 和 API key ,文本由 和 标注。该脚本不给出错误消息,并拉取(延迟的)数据。我可以看出身份验证工作不正常,因为数据被延迟了。使用身份验证在 TD Ameritrade 网站上进行测试会返回实时数据。在我的 PC 上的 DOS 框中运行 CURL 也是如此。
var ticker = "AAPL"
var options = {
"method" : "GET",
"Authorization" : "Bearer <access token>"
}
var calltoAPI = UrlFetchApp.fetch("https://api.tdameritrade.com/v1/marketdata/"+ticker+"/quotes?apikey=<APIkey>",options);
我在这方面还很陌生,如果有任何帮助,我将不胜感激
更新:这是有效的代码
var ticker = "APPL"
var headers = {"Authorization":" Bearer <access token>"}
var options = {"headers":headers}
var calltoAPI=urlFetchApp.fetch("https://api.tdameritrade.com/v1/marketdata/"+ticker+"/quotes?apikey=<apikey>",options);
最佳答案
- 您想将以下 curl 命令转换为 Google Apps 脚本。
curl -X GET --header "Authorization: "--header "Authorization: Bearer ""https://api.tdameritrade.com/v1/marketdata/AAPL/quotes?apikey="
- 您已经确认此 curl 命令可以正常工作。
如果我的理解是正确的,这个答案怎么样?当 --header "Authorization: Bearer "
用于 Google Apps Script 时,请将其放在 header 对象中。所以请修改如下。
来自:
var options = {
"method" : "GET",
"Authorization" : "Bearer <access token>"
}
收件人:
var options = {
"method" : "GET",
"headers": {"Authorization" : "Bearer <access token>"}
};
引用:
您的 curl 命令和修改后的脚本的请求是相同的。但如果这不起作用,请确认 token 。
关于javascript - 尝试使用需要身份验证的 API 使用 Google 脚本从 TDAmeritrade 提取股票报价信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58945513/