-
Notifications
You must be signed in to change notification settings - Fork 0
Custom 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.
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=
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!