The Easiest Way to Save and Share Code Snippets on the web

Simple OAuth sample with foursquare

java | by: okoeth

posted: Mar, 21st 2010 | jump to bottom

package uk.co.koeth.foursquare.test;
 
import java.io.InputStream;
 
import javax.xml.parsers.DocumentBuilderFactory;
 
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
 
import oauth.signpost.OAuthConsumer;
import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer;
 
public class Main {
 
	/**
	 * The follwoing information can be obtained from: http://foursquare.com/oauth/
	 * Request Token URL: http://foursquare.com/oauth/request_token
	 * Access Token URL: http://foursquare.com/oauth/access_token
	 * Authorize URL: http://foursquare.com/oauth/authorize 
	 * Application Name: <app name>
	 * Callback URL: <callback url>
	 * Key: <key>
	 * Secret: <secret>
	 *
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		org.apache.http.client.HttpClient httpClient = new DefaultHttpClient();
		OAuthConsumer consumer = new CommonsHttpOAuthConsumer(
			"<key>", 
            "<secret>"); 		
		HttpGet reqLogin = new HttpGet("http://api.foursquare.com/v1/authexchange?fs_username=<username>&fs_password=<password>");
		consumer.sign(reqLogin);
		HttpResponse resLogin = httpClient.execute(reqLogin);
		if (resLogin.getEntity() == null) {
			System.out.println("FAILED TO CONNECT.");
			return;
		}
		Document document = 
			DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(resLogin.getEntity().getContent());
		Element eOAuthToken = 
			(Element) document.getElementsByTagName("oauth_token").item(0);
		String sOAuthToken =  eOAuthToken.getTextContent();
		System.out.println("oauth_token:"+sOAuthToken);
		Element eOAuthTokenSecret = 
			(Element) document.getElementsByTagName("oauth_token_secret").item(0);
		String sOAuthTokenSecret =  eOAuthTokenSecret.getTextContent();
		System.out.println("oauth_token_secret:"+sOAuthTokenSecret);
		consumer.setTokenWithSecret(sOAuthToken, sOAuthTokenSecret);
		HttpGet requestVenue = new HttpGet("http://api.foursquare.com/v1/venue?vid=426755");
		consumer.sign(requestVenue);
		HttpResponse resVenue = httpClient.execute(requestVenue);
		if (resVenue.getEntity() == null) {
			System.out.println("FAILED TO LOAD VENUE.");
		}
		InputStream is = resVenue.getEntity().getContent();
		for (int i = is.read(); i > -1; i = is.read()) {
			System.out.write(i);
		}
	}
}
 
1427 views