Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: scribejava/scribejava
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: daxia/scribe-java
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Can’t automatically merge. Don’t worry, you can still create the pull request.
  • 3 commits
  • 3 files changed
  • 2 contributors

Commits on Jul 13, 2012

  1. Copy the full SHA
    2d14afe View commit details

Commits on Jul 19, 2012

  1. Copy the full SHA
    bf13f57 View commit details
  2. Merge pull request #285 from justinwyer/master

    GithubApi
    fernandezpablo85 committed Jul 19, 2012
    Copy the full SHA
    d9624ec View commit details
Showing with 101 additions and 2 deletions.
  1. +4 −2 README.textile
  2. +33 −0 src/main/java/org/scribe/builder/api/GithubApi.java
  3. +64 −0 src/test/java/org/scribe/examples/GithubExample.java
6 changes: 4 additions & 2 deletions README.textile
Original file line number Diff line number Diff line change
@@ -2,6 +2,10 @@ h2. Welcome to the home of Scribe, the simple OAuth Java lib!

!https://secure.travis-ci.org/fernandezpablo85/scribe-java.png?branch=master(travis-ci-status)!


h2. IMPORTANT: Do not email me or raise an issue *without* "reading the FAQ first":http://wiki.github.com/fernandezpablo85/scribe-java/faq. Please. Pretty please. Pretty please with sugar on top. Thanks


h1. Why use Scribe?

h3. Dead Simple
@@ -72,8 +76,6 @@ h1. Getting started in less than 2 minutes

Check the "Getting Started":http://wiki.github.com/fernandezpablo85/scribe-java/getting-started page and start rocking!

h1. Please Read the "FAQ":http://wiki.github.com/fernandezpablo85/scribe-java/faq before creating an issue :)

h1. Questions?

Feel free to drop me an email, but there's already a "StackOverflow":http://stackoverflow.com tag for "scribe":http://stackoverflow.com/questions/tagged/scribe you should use. I'm subscribed to it so I'll pick the question immediately.
33 changes: 33 additions & 0 deletions src/main/java/org/scribe/builder/api/GithubApi.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package org.scribe.builder.api;

import org.scribe.model.*;

import org.scribe.utils.*;

public class GithubApi extends DefaultApi20
{
private static final String AUTHORIZE_URL = "https://github.com/login/oauth/authorize?client_id=%s&redirect_uri=%s";
private static final String SCOPED_AUTHORIZE_URL = AUTHORIZE_URL + "&scope=%s";

@Override
public String getAccessTokenEndpoint()
{
return "https://github.com/login/oauth/access_token";
}

@Override
public String getAuthorizationUrl(OAuthConfig config)
{
Preconditions.checkValidUrl(config.getCallback(), "Must provide a valid url as callback. Github does not support OOB");

// Append scope if present
if(config.hasScope())
{
return String.format(SCOPED_AUTHORIZE_URL, config.getApiKey(), OAuthEncoder.encode(config.getCallback()), OAuthEncoder.encode(config.getScope()));
}
else
{
return String.format(AUTHORIZE_URL, config.getApiKey(), OAuthEncoder.encode(config.getCallback()));
}
}
}
64 changes: 64 additions & 0 deletions src/test/java/org/scribe/examples/GithubExample.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package org.scribe.examples;

import java.util.*;

import org.scribe.builder.*;
import org.scribe.builder.api.*;
import org.scribe.model.*;
import org.scribe.oauth.*;

public class GithubExample
{
private static final String NETWORK_NAME = "Github";
private static final String PROTECTED_RESOURCE_URL = "https://api.github.com/user";
private static final Token EMPTY_TOKEN = null;

public static void main(String[] args)
{
// Replace these with your own api key and secret
String apiKey = "your_app_id";
String apiSecret = "your_api_secret";
OAuthService service = new ServiceBuilder()
.provider(GithubApi.class)
.apiKey(apiKey)
.apiSecret(apiSecret)
.callback("http://www.example.com/oauth_callback/")
.build();
Scanner in = new Scanner(System.in);

System.out.println("=== " + NETWORK_NAME + "'s OAuth Workflow ===");
System.out.println();

// Obtain the Authorization URL
System.out.println("Fetching the Authorization URL...");
String authorizationUrl = service.getAuthorizationUrl(EMPTY_TOKEN);
System.out.println("Got the Authorization URL!");
System.out.println("Now go and authorize Scribe here:");
System.out.println(authorizationUrl);
System.out.println("And paste the authorization code here");
System.out.print(">>");
Verifier verifier = new Verifier(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...");
Token accessToken = service.getAccessToken(EMPTY_TOKEN, verifier);
System.out.println("Got the Access Token!");
System.out.println("(if your curious it looks like this: " + accessToken + " )");
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...");
OAuthRequest request = new OAuthRequest(Verb.GET, PROTECTED_RESOURCE_URL);
service.signRequest(accessToken, request);
Response response = request.send();
System.out.println("Got it! Lets see what we found...");
System.out.println();
System.out.println(response.getCode());
System.out.println(response.getBody());

System.out.println();
System.out.println("Thats it man! Go and build something awesome with Scribe! :)");

}
}