我已成功获取请求 token ,现在将其与我的消费者 key 结合使用来创建以下请求
https://us.etrade.com/e/etws/authorize?key=2fc *******c323d6&token=IIrs6BsIrGQ** ******duC60GAmLq8
其中星号已替换为我的消费者 key 和请求 token 。我将其作为 getAuthorizeURL 的参数,这将返回 ETWSException 并在终端读取中输出
错误 OAuthClientImpl - 缺少强制参数
我有 getAuthorizeURL 方法的两个必需参数,并且我确信它们的格式正确。谁能告诉我这里出了什么问题吗?
此外,如果有帮助的话,调用 getAuthorizeURL 会导致我的默认浏览器打开并将我带到上面输入的地址,但它会返回 404 错误。
最佳答案
如果您使用文档中的示例代码..它们缺少 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 之前在请求对象上设置 token key / secret 。
request.setToken(oauth_request_token); request.setTokenSecret(oauth_request_token_secret);
关于oauth - 为什么 Etrade API 返回缺少参数错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21646555/