我正在使用 TD Ameritrade 的 API 来提取股票行情信息。该脚本需要身份验证才能提取实时数据。 CURL命令如下:
curl -X GET --header“授权:” --header“授权:承载“”https://api.tdameritrade.com/v1/marketdata/AAPL/quotes?apikey= https://api.tdameritrade.com/v1/marketdata/AAPL/quotes?apikey="
我使用 Google 脚本从 API 读取数据,进行一些计算,然后将数据写入 Google 表格。下面是用于身份验证的脚本,但它不起作用。请注意,此处未显示我的访问令牌和 APIkey,并且文本由 和 标注。该脚本不会给出错误消息,并提取(延迟)数据。我可以看出身份验证无法正常工作,因为数据被延迟。通过身份验证在 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);
- You want to convert the following curl command to Google Apps Script.
curl -X GET --header "Authorization: " --header "Authorization: Bearer " "https://api.tdameritrade.com/v1/marketdata/AAPL/quotes?apikey="
- 您已经确认这个curl命令工作正常。
如果我的理解是正确的,这个答案怎么样?什么时候--header "Authorization: Bearer "
用于Google Apps脚本,请将其放入标头对象中。所以请修改如下。
From:
var options = {
"method" : "GET",
"Authorization" : "Bearer <access token>"
}
To:
var options = {
"method" : "GET",
"headers": {"Authorization" : "Bearer <access token>"}
};
参考:
- 获取(网址,参数) https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app#fetchurl,-params
您的curl命令和修改后的脚本的请求是相同的。但如果这不起作用,请确认令牌。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)