我正在开发一个 Java 应用程序,我正在使用 Java 中的 google gdata 实现 3-legged OAuth。此应用程序已在 Google App Engine 上注册。在第一阶段,我成功获得了未经授权的请求令牌。我将该令牌存储在会话中并使用 createUserAuthorizationUrl(oauthParameters) 创建一个链接。然后单击链接,它将我重定向到“授予访问页面”。
现在,即使我授予访问权限,它也不会显示此页面。但是,它会将我重定向到我的回调 url。然而,这似乎是正确的。但是,它也不会在My Account下添加条目。在这里,我将 oauth_token 存储在会话中。
重定向时,该页面的 url 包含 oauth_token 和 oauth_verifier,两者都包含!现在,在这个回调 url 上,我有一个提交按钮并将操作设置为 accessTokenServlet.java。这个servlet的代码如下:
现在我正在发送请求以获取访问令牌。我的代码是:
GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
oauthParameters.setOAuthConsumerKey(CONSUMER_KEY);
oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET);
oauthParameters.setOAuthType(OAuthParameters.OAuthType.THREE_LEGGED_OAUTH);
GoogleOAuthHelper oauthHelper = new GoogleOAuthHelper(new OAuthHmacSha1Signer());
oauthParameters.setOAuthToken(request.getSession().getAttribute("oauth_token").toString());
oauthParameters.setOAuthTokenSecret(request.getSession().getAttribute("oauth_token_secret").toString());
try {
String accessToken = oauthHelper.getAccessToken(oauthParameters);
out.println("Access Token : " + accessToken);
} catch (OAuthException e) {
//System.out.print("Response Status : " + response.getStatus());
out.println("Exception : ");
e.printStackTrace();
return;
}
单击提交按钮时,它会打印“访问令牌:”并且什么都没有!没有令牌返回!
我在授权请求令牌本身的阶段出错了。但是,我没有得到,产生了什么问题?