Позвольте мне сначала объяснить свой сценарий. Я использую Scribe для подключения через Oauth к API, напрямую не поддерживаемому Scribe. Тем не менее, сервер, к которому я подключаюсь, требует ввода четырехзначного числа в качестве последнего шага для возможности создания accessToken.Что ожидать, когда верификатор ошибочен
В то время как это работает отлично, когда пользователь вводит 4 цифры неправильно, приложение остается бегущим навсегда, никакая ошибка или исключение не выбрасываются (на мой взгляд). Это код, который я использую:
//verifierString has the 4-digit number
verifier = new Verifier(verifierString);
Logger.debug("Trading the Request Token for an Access Token...");
accessToken = service.getAccessToken(requestToken, verifier);
Приложение остается в getAccessToken навсегда. Интересно, есть ли способ контролировать это, так как очень возможно, что пользователи вводят 4 цифры неправильно. Я проверил код getAccessToken, Oauth 1.0, так как это один я использую:
public Token getAccessToken(Token requestToken, Verifier verifier)
{
config.log("obtaining access token from " + api.getAccessTokenEndpoint());
OAuthRequest request = new OAuthRequest(api.getAccessTokenVerb(), api.getAccessTokenEndpoint());
request.addOAuthParameter(OAuthConstants.TOKEN, requestToken.getToken());
request.addOAuthParameter(OAuthConstants.VERIFIER, verifier.getValue());
config.log("setting token to: " + requestToken + " and verifier to: " + verifier);
addOAuthParams(request, requestToken);
appendSignature(request);
Response response = request.send();
return api.getAccessTokenExtractor().extract(response.getBody());
}
Это только кажется, что посыл() бросает RuntimeException, но не уверен, если ловить его из моего кода является правильным способ сделать это ... любые предложения?
Спасибо! Alex
Спасибо, Пабло, это хорошо знать, и да, я думаю, проблема на стороне сервера. Я должен проверить это, хотя ... Еще раз спасибо! – AlejandroVK