Javaでgooglegdataを使用して3本足のOAuthを実装するJavaアプリケーションを開発しています。このアプリケーションはGoogleAppEngineに登録されています。最初の段階では、許可されていないリクエストトークンを正常に取得しています。そのトークンをセッションに保存し、createUserAuthorizationUrl(oauthParameters)を使用してリンクを作成しています。次に、リンクをクリックすると、「アクセス許可ページ」にリダイレクトされます。
これで、アクセスを許可しても、このページは表示されません。しかし、それは私を私のコールバックURLにリダイレクトします。ただし、これは適切なようです。ただし、 [マイアカウント]の下にエントリは追加されません。ここでは、oauth_tokenをセッションに保存しています。
リダイレクトされると、そのページのURLにはoauth_tokenとoauth_verifierの両方が含まれます。さて、このコールバックURLには、送信ボタンとforのアクションをaccessTokenServlet.javaに設定しています。このサーブレットのコードは次のとおりです。
現在、アクセストークンを取得するためのリクエストを送信しています。私のコードは:
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;
}
送信ボタンをクリックすると、「アクセストークン:」と何も出力されません。トークンは返されません!
リクエストトークン自体を承認する段階で間違っています。しかし、私は得ていません、どのような問題が発生しましたか?