Skip to content

Instantly share code, notes, and snippets.

@JimTim
Last active October 20, 2016 16:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JimTim/5ed18159dc960cfa868bfcc81b2411cb to your computer and use it in GitHub Desktop.
Save JimTim/5ed18159dc960cfa868bfcc81b2411cb to your computer and use it in GitHub Desktop.
/** Example from https://github.com/scribejava/scribejava/blob/master/scribejava-apis/src/test/java/com/github/scribejava/apis/examples/TumblrExample.java
*/
import java.util.Scanner;
import com.github.scribejava.core.builder.ServiceBuilder;
import com.github.scribejava.core.model.OAuth1AccessToken;
import com.github.scribejava.core.model.OAuth1RequestToken;
import com.github.scribejava.core.model.OAuthRequest;
import com.github.scribejava.core.model.Response;
import com.github.scribejava.core.model.Verb;
import com.github.scribejava.core.oauth.OAuth10aService;
import java.io.IOException;
public final class TumblrExample {
private static final String PROTECTED_RESOURCE_URL = "https://api.tumblr.com/v2/user/info";
private TumblrExample() {
}
public static void main(String... args) throws IOException {
final OAuth10aService service = new ServiceBuilder()
.apiKey("MY_CONSUMER_KEY")
.apiSecret("MY_CONSUMER_SECRET")
// OOB forbidden. We need an url and the better is on the tumblr website !
.callback("https://www.tumblr.com/connect/login_success.html")
.build(TumblrHTTPSApi.instance());
final Scanner in = new Scanner(System.in);
System.out.println("=== Tumblr's OAuth Workflow ===");
System.out.println();
// Obtain the Request Token
System.out.println("Fetching the Request Token...");
final OAuth1RequestToken requestToken = service.getRequestToken();
System.out.println("Got the Request Token!");
System.out.println();
System.out.println("Now go and authorize ScribeJava here:");
System.out.println(service.getAuthorizationUrl(requestToken));
System.out.println("And paste the verifier here");
System.out.print(">>");
final String oauthVerifier = in.nextLine();
System.out.println();
// Trade the Request Token and Verfier for the Access Token
System.out.println("Trading the Request Token for an Access Token...");
final OAuth1AccessToken accessToken = service.getAccessToken(requestToken, oauthVerifier);
System.out.println("Got the Access Token!");
System.out.println("(if your curious it looks like this: " + accessToken
+ ", 'rawResponse'='" + accessToken.getRawResponse() + "')");
System.out.println();
// Now let's go and ask for a protected resource!
System.out.println("Now we're going to access a protected resource...");
final OAuthRequest request = new OAuthRequest(Verb.GET, PROTECTED_RESOURCE_URL, service);
service.signRequest(accessToken, request);
final Response response = request.send();
System.out.println("Got it! Lets see what we found...");
System.out.println();
System.out.println(response.getBody());
System.out.println();
System.out.println("Thats it man! Go and build something awesome with Scribe! :)");
}
}
import com.github.scribejava.core.builder.api.DefaultApi10a;
import com.github.scribejava.core.model.OAuth1RequestToken;
/**
* look at https://github.com/scribejava/scribejava/wiki/Custom-Apis and https://www.tumblr.com/oauth/apps
* Request-token URL:
* POST https://www.tumblr.com/oauth/request_token
* Authorize URL:
* https://www.tumblr.com/oauth/authorize
* Access-token URL:
* POST https://www.tumblr.com/oauth/access_token
*
* @author tim
*
*/
public class TumblrHTTPSApi extends DefaultApi10a {
private static final String AUTHORIZE_URL = "https://www.tumblr.com/oauth/authorize?token=%s";
protected TumblrHTTPSApi() {
}
private static class InstanceHolder {
private static final TumblrHTTPSApi INSTANCE = new TumblrHTTPSApi();
}
public static TumblrHTTPSApi instance() {
return InstanceHolder.INSTANCE;
}
@Override
public String getAccessTokenEndpoint(){
return "https://www.tumblr.com/oauth/access_token";
}
@Override
public String getRequestTokenEndpoint() {
return "https://www.tumblr.com/oauth/request_token";
}
@Override
public String getAuthorizationUrl(OAuth1RequestToken requestToken) {
return String.format(AUTHORIZE_URL, requestToken.getToken());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment