buzza

Scribe against Twitter

On last week I found very interesting library on java for integration with oauth services, meet – . It also works well on Android.

So, let’s start – I needed to implement some functionality for interacting with twitter, and here I met an issue. I decided to use callback instead of pin and for this case twitter sends another format of data. So, let’s have a look:

import org.scribe.model.Token;
import org.scribe.oauth.OAuthService;
import org.scribe.builder.ServiceBuilder;
import org.scribe.builder.api.TwitterApi;

OAuthService service = new ServiceBuilder()
        .provider(TwitterApi.class)
        .apiKey(API_KEY)
        .apiSecret(API_SECRET)
        .callback(CALLBACK_URL)
        .build();

And after that let’s take auth url for twitter:

String authUrl = service.getAuthorizationUrl(service.getRequestToken());

When you let application connect to your account twitter will redirect you to specified callback with two parameters oauth_token and oauth_verifier. What we need to do for success (I show the code that uses resteasy library):

@GET
@Path("/twitter_callback")
public String getTwitterVerifier(@QueryParam(value = "oauth_token") String oauth_token,
                                 @QueryParam(value = "oauth_verifier") String oauth_verifier) {
    Token reqToken = mService.getRequestToken();
    Token reqToken2 = new Token(oauth_token, reqToken.getSecret());

    Token accessToken = mService.getAccessToken(reqToken2, new Verifier(oauth_verifier));

    return accessToken.toString();
}

And voila! We have valid access token. The main idea was in creating new request token with received oauth token.

It’s not so obvious and I have not found it in the documentation :(

Add Comment Register

Leave a Reply


3 × = fifteen