我正在尝试使用Google Apps脚本登录我的经纪人(TD Ameritrade)API。
他们按如下方式定义请求:
请求:
> https://apis.tdameritrade.com/apps/100/LogIn?source=#sourceID#&version=#version
>
> POST DATA
userid=#userid#&password=#password#&source=#sourceID#&version=#version
我对REST调用并不熟悉,并尝试了这种方法的几个版本:
function logIn() {
// check if car is reachable
var fetch_string="https://apis.tdameritrade.com/apps/300/LogIn?source=MySourceID#&version=1.0";
var options = {
'method' : 'post',
"headers" : {
"userid" : "MyUser",
"password" : "MyPassword",
"source" : "MySourceID",
"version" : "1.0"
}
};
var response = UrlFetchApp.fetch(fetch_string, options);
var document = XmlService.parse(response)
Logger.log(document);
debugger;
}
但登录总是失败。
我还找到了一个javascript示例,但无法将其与google apps脚本匹配:
function getData(task){
Source=valIs('SourceID'); User=valIs('Username'); Pass=valIs('Password');
if(Source=='' || User=='' || Pass==''){ alert('Need User Info'); return false; }
url='https://apis.tdameritrade.com/apps/'; src='source='+Source;
Ajax=new XMLHttpRequest();
if(task=='login'){
data=src+'&version=1.0';
url+='100/LogIn?'+data;
data+='&userid='+User+'&password='+Pass;
add('tracking','URL: '+url+'<br>Data: '+data+'<br><br>');
Ajax.open('POST', url, true);
Ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
Ajax.send(data);
任何人都可以帮我解决谷歌应用脚本帖子请求的结构吗?非常感谢您的帮助。
答案 0 :(得分:0)
我遇到了同样的问题。要使其工作,您的“来源”值必须是DEMO。
这些旧的API很快就会消失。 访问https://developer.tdameritrade.com。注册一个帐户并使用新的API,你就可以了!