Skip to content
Jonas Kress edited this page Oct 17, 2019 · 45 revisions

Getting Started With ScribeJava (AKA ‘OAuth made so easy your grandma can do it’) for the OAuth 1.0a

In this tutorial we will walk through an example on how to use ScribeJava with Twitter (OAuth 1.0a).

For an executable example please go here

Quick-run an example

1. Install maven
2. Replace sample keys and tokens with your real keys-tokens in e.g. `Vimeo20Example.java`
3. Compile by

mvn compiler:compile

4. Run the example by
mvn exec:java -Dexec.mainClass=“org.scribe.examples.Vimeo20Example” -Dexec.classpathScope=test test-compile exec:java

Step Zero: Install ScribeJava

First of all, you need to install ScribeJava. You either download two jars manually from the downloads page and http://mvnrepository.com/artifact/com.github.scribejava/scribejava-core and include apache commons codec, or just let maven take care of everything adding this to your pom.xml file:

<dependency>
  <groupId>com.github.scribejava</groupId>
  <artifactId>scribejava-apis</artifactId>
  <version>6.4.1</version> // please use always the latest version
</dependency>

Or for gradle:

dependencies {
    implementation 'com.github.scribejava:scribejava-apis:6.4.1'
}

Step One: Create the OAuthService object

final OAuth10aService service = new ServiceBuilder("your_api_key")
                           .apiSecret("your_api_secret")
                           .build(TwitterApi.instance());

Yup, that’s it. :)

The example uses OOB OAuth, if you want to pass a callbackUrl so that Twitter redirects you there just add
a callback("http://your_callback_url") call before build()

Step Two: Get the request token

final OAuth1RequestToken requestToken = service.getRequestToken();

Easy right?

Step Three: Making the user validate your request token

Let’s help your users authorize your app to do the OAuth calls.

For this you need to redirect them to the following URL:

String authUrl = service.getAuthorizationUrl(requestToken);

After this either the user will get a verifier code (if this is an OOB request) or you’ll receive a redirect from Twitter with the verifier and the requestToken on it (if you provided a callbackUrl)

Step Four: Get the access Token

Now that you have (somehow) the verifier, you need to exchange your requestToken and verifier for an accessToken which is the one used to sign requests.

final OAuth1AccessToken accessToken = service.getAccessToken(requestToken, "verifier you got from the user/callback");

Step Five: Sign request

You are all set to make your first API call, so let’s do it!

final OAuthRequest request = new OAuthRequest(Verb.GET, "https://api.twitter.com/1.1/account/verify_credentials.json");
service.signRequest(accessToken, request); // the access token from step 4
final Response response = service.execute(request);
System.out.println(response.getBody());

That’s it! You already know everything you need to start building a cool OAuth application.

Good Luck!

Doubts – Comments

email me at:

https://github.com/scribejava/scribejava/blob/master/pom.xml#L44