Last active
October 20, 2016 16:02
-
-
Save JimTim/5ed18159dc960cfa868bfcc81b2411cb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** 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! :)"); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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