为什么Etrade API返回缺少的参数错误?

时间:2014-02-08 13:26:45

标签: oauth etrade-api

我已经连续获得了一个请求令牌,现在我正在将它与我的使用者密钥一起使用来创建以下请求

https://us.etrade.com/e/etws/authorize?key=2fc * ** * *** c323d6&安培;标记= IIrs6BsIrGQ * ** * *** * duC60GAmLq8

其中星号已替换为我的使用者密钥和请求令牌。我将此作为参数提供给getAuthorizeURL这将返回一个ETWSException并在终端读取输出

错误OAuthClientImpl - 缺少必需参数

我有getAuthorizeURL方法的两个必需参数,我确信它们的格式正确。谁能告诉我这里出了什么问题?

此外,如果知道有用,调用getAuthorizeURL会导致我的默认浏览器打开并将我带到上面输入的地址,但它会返回404错误。

1 个答案:

答案 0 :(得分:3)

如果您使用的是文档中的示例代码,则会丢失1件。

(Java)的

client = OAuthClientImpl.getInstance(); // Instantiate IOAUthClient 
    request = new ClientRequest(); // Instantiate ClientRequest 
    request.setEnv(Environment.SANDBOX); // Use sandbox environment 

    request.setConsumerKey(oauth_consumer_key); //Set consumer key 
    request.setConsumerSecret(oauth_consumer_secret); // Set consumer secret 
    token= client.getRequestToken(request); // Get request-token object

    oauth_request_token = token.getToken(); // Get token string 
    oauth_request_token_secret = token.getSecret(); // Get token secret 

    request.setToken(oauth_request_token);
    request.setTokenSecret(oauth_request_token_secret);

    String authorizeURL = null; 
    authorizeURL = client.getAuthorizeUrl(request);

    URI uri = new URI(authorizeURL);

    Desktop desktop = Desktop.getDesktop(); 
    desktop.browse(uri);

文档示例忘了提及,在调用get AuthorizeUri之前,您需要在Request对象上设置Token Key / Secret。

<强> request.setToken(oauth_request_token); request.setTokenSecret(oauth_request_token_secret);