Я столкнулся с той же проблемой, и мне потребовалось некоторое время, чтобы понять это.
На самом деле проблема в том, что вам не хватает некоторых частей в процессе авторизации OAuth.
Как вы, возможно, знаете, это трехсторонний процесс:
- Получить токен неавторизованного запроса
- Авторизовать токен запроса
- Обменяйте авторизованный токен запроса на токен доступа и совершайте с ним звонки в Данные Google.
В вашем случае вы выполняете шаг 3 напрямую.
Итак, прежде чем вы сможете вызвать сервлет, который вы описали выше, и эффективно получить данные Google пользователя,
пользователь должен иметь доступ к вашему приложению, перейдя по адресу URL авторизации в своем веб-браузере.
Вам нужен первый сервлет, например, доступный по http://yourapp.com/RequestAccess
public void doGet(HttpServletRequest req, HttpServletResponse resp) {
GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
oauthParameters.setOAuthConsumerKey(YOUR_CONSUMER_KEY);
oauthParameters.setOAuthConsumerSecret(YOUR_CONSUMER_SECRET);
OAuthHmacSha1Signer signer = new OAuthHmacSha1Signer();
GoogleOAuthHelper oauthHelper = new GoogleOAuthHelper(signer);
oauthParameters.setScope(FEED_SCOPE);
try {
oauthHelper.getUnauthorizedRequestToken(oauthParameters);
//GET THE UNAUTHORIZED TOKENS
String oauthRequestToken = oauthParameters.getOAuthToken();
String oauthTokenSecret = oauthParameters.getOAuthTokenSecret();
//SAVE THEM SOMEWEHERE (FOR EXAMPLE IN THE SESSION LIKE YOU DID)
// ....
//GET THE AUHTORIZATION URL
String authorizationURL= oauthHelper.createUserAuthorizationUrl(oauthParameters);
// YOU NOW HAVE THE AUHTORIZATION URL, SEND IT BACK TO THE USER SOMEHOW
// ( FOR EXAMPLE BY REDIRECTING THE REQUEST TO THAT URL)
// ...
} catch (OAuthException e1) {
LOGGER.error("error while getting unauthorized request token '{}' ", e1);
}
}
Как только пользователь перейдет по этому URL и предоставит доступ, теперь вы можете вызвать второй сервлет, и он должен работать.
Более подробную информацию можно найти на странице Google OAuth здесь
Надеюсь, это поможет!