我已经连续获得了一个请求令牌,现在我正在将它与我的使用者密钥一起使用来创建以下请求
https://us.etrade.com/e/etws/authorize?key=2fc的 * ** * *** c323d6&安培;标记= IIrs6BsIrGQ * ** * *** * duC60GAmLq8
其中星号已替换为我的使用者密钥和请求令牌。我将此作为参数提供给getAuthorizeURL这将返回一个ETWSException并在终端读取输出
错误OAuthClientImpl - 缺少必需参数
我有getAuthorizeURL方法的两个必需参数,我确信它们的格式正确。谁能告诉我这里出了什么问题?
此外,如果知道有用,调用getAuthorizeURL会导致我的默认浏览器打开并将我带到上面输入的地址,但它会返回404错误。
答案 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); 强>