无法使用Google Apps脚本登录我的td ameritrade帐户

时间:2017-12-10 20:03:44

标签: javascript google-apps-script

我正在尝试使用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);

任何人都可以帮我解决谷歌应用脚​​本帖子请求的结构吗?非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。要使其工作,您的“来源”值必须是DEMO。

这些旧的API很快就会消失。 访问https://developer.tdameritrade.com。注册一个帐户并使用新的API,你就可以了!