Я занимаюсь разработкой Java-приложения, в котором я реализую 3-стороннюю OAuth с использованием gdata google в Java. Это приложение зарегистрировано в Google App Engine. На первом этапе я успешно получаю несанкционированный токен запроса. Я храню этот токен в сеансе и создаю ссылку, используя createUserAuthorizationUrl (oauthParameters). Затем, нажав на ссылку, он перенаправляет меня на страницу «Предоставить доступ».
Теперь, хотя я предоставляю доступ, он не показывает мне эту страницу . Но он перенаправляет меня на мой URL обратного вызова. Тем не менее, это кажется правильным. Но он также не добавляет запись под Моя учетная запись . Здесь я храню oauth_token в сеансе.
При перенаправлении URL этой страницы содержит oauth_token и oauth_verifier, оба! Теперь, на этом URL обратного вызова, у меня есть кнопка отправки и установить действие для 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;
}
При нажатии кнопки «Отправить» выводится «Токен доступа:» и ничего! Токен не возвращается!
Я ошибаюсь на этапе авторизации самого токена запроса. Но я не получаю, какая проблема возникла?