forked from scribejava/scribejava
-
Notifications
You must be signed in to change notification settings - Fork 0
Custom Apis
fernandezpablo85 edited this page Aug 3, 2012
·
1 revision
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());
}
}
OAuthService service = new ServiceBuilder()
.provider(JimboApi.class)
.apiKey("6icbcAXyZx67r8uTAUM5Qw")
.apiSecret("SCCAdUUc6LXxiazxH3N0QfpNUvlUy84mZ2XZKiv39s")
.build();
Well you got it! easy right? The last optional step is collaborating :)
You can create a pull request with your shiny new Jimbo api to make it part of Scribe so other developers can benefit from this too!