Получение значения верификатора OAuth как нулевого

#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 параметра — это то, что вам нужно.