#oauth
#oauth
Вопрос:
Я пытаюсь получить токен доступа, для которого мне нужен верификатор OAuth. Я использую класс TokenSecretVerifierHolder для получения токена, секрета токена и верификатора, но я получаю только значение токена, секрета токена, однако значение верификатора становится равным нулю. Вот мой код.
public TokenSecretVerifierHolder getRequestToken() {
try {
OAuthAccessor accessor = getAccessor();
OAuthClient oAuthClient = new OAuthClient(new HttpClient4());
List<OAuth.Parameter> callBack;
if ((this.callback == null) || ("".equals(this.callback))) {
callBack = Collections.emptyList();
} else {
callBack = ImmutableList.of(new OAuth.Parameter("oauth_callback", this.callback));
}
OAuthMessage message = oAuthClient.getRequestTokenResponse(accessor, "POST", callBack);
TokenSecretVerifierHolder tokenSecretVerifier = new TokenSecretVerifierHolder();
tokenSecretVerifier.token = accessor.requestToken;
tokenSecretVerifier.secret = accessor.tokenSecret;
tokenSecretVerifier.verifier = message.getParameter("oauth_verifier");
return tokenSecretVerifier;
} catch (Exception e) {
throw new RuntimeException("Failed to obtain request token", e);
}
}
private String getAccessToken() {
AtlassianOAuthClientRequest jiraoAuthClient = getJiraOAuthClient();
TokenSecretVerifierHolder requestToken = jiraoAuthClient.getRequestToken();
String authorizeUrl = jiraoAuthClient.getAuthorizeUrlForToken(requestToken.token);
String token = requestToken.token;
String tokenSecret = requestToken.secret;
String verifier = requestToken.verifier;
String accessToken = jiraoAuthClient.swapRequestTokenForAccessToken(token, tokenSecret, verifier);
String verifier = requestToken.verifier;
System.out.println("Access token is : " accessToken);
return accessToken;
}
После восстановления значения токена, секрета токена и верификатора я передаю его, чтобы получить значение токена доступа. Я хочу, чтобы после подтверждения authorizeUrl он вернул мне значение верификатора Oauth. В моем случае оно возвращается как null.
Ответ №1:
Требуемое значение верификатора возвращается вам во время перенаправления HTTP на ваш URL обратного вызова — перенаправление происходит с URL like https://consumer.url/?oauth_token=TOKENamp;oauth_verifier=VERIFIER
, поэтому значение oauth_verifier
параметра — это то, что вам нужно.