Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Custom Apis

Katrina Swales edited this page · 3 revisions

How to work with other Apis

You probably will have to work with an api that's not supported out of the box by Scribe. This is almost as easy, you'll just gonna need to create a simple class.

Creating your Api class

Let's suppose you want to work with a 1.0a provider called Jimbo, it's api has the following endpoints:

request token: http://jimbo.com/oauth/request_token
access token: http://jimbo.com/oauth/access_token
authorize: http://jimbo.com/oauth/authorize_jimbo?token=<your token here>

Scribe does not support it out of the box so naturally, you panic. Don't. The only thing you need to do is make your JimboApi.class like this:

public class JimboApi extends DefaultApi10a
{
  private static final String AUTHORIZE_URL = "http://jimbo.com/oauth/authorize?token=%s";

  @Override
  public String getAccessTokenEndpoint()
  {
    return "http://jimbo.com/oauth/access_token";
  }

  @Override
  public String getRequestTokenEndpoint()
  {
    return "http://jimbo.com/oauth/request_token";
  }

  @Override
  public String getAuthorizationUrl(Token requestToken)
  {
    return String.format(AUTHORIZE_URL, requestToken.getToken());
  }

}

Create the Jimbo service

 OAuthService service = new ServiceBuilder()
                                .provider(JimboApi.class)
                                .apiKey("6icbcAXyZx67r8uTAUM5Qw")
                                .apiSecret("SCCAdUUc6LXxiazxH3N0QfpNUvlUy84mZ2XZKiv39s")
                                .build();

The default signature type for Scribe uses the request's header. If your API uses query string parameters for the signature, be sure to add:

.signatureType(SignatureType.QueryString)

after the apiSecret.

That's it!

Well you got it! easy right?

Something went wrong with that request. Please try again.