2010-04-29 4 views
2

J'ai besoin d'accéder à Facebook à partir d'une application J2EE (côté serveur). J'ai d'abord jeté un coup d'oeil à ce projet: http://code.google.com/p/facebook-java-api/ , mais comme j'ai besoin de créer Facebook-Events et d'inviter les gens cela n'aide pas. Donc je suppose que j'ai besoin d'utiliser l'API Graph, mais je n'ai aucune idée sur la façon d'effectuer ces requêtes HTTP POST nécessaires - en particulier comment ajouter les attributs nedded.Comment utiliser Facebook Graph-API à partir d'une servlet

Répondre

2

Vous pouvez utiliser le java.net.URLConnection pour cela:

String url = "http://facebook.com/some/api"; 
String charset = "UTF-8"; 
String param1 = URLEncoder.encode("value1", charset); 
String param2 = URLEncoder.encode("value2", charset); 
String query = String.format("param1=%s&param2=%s", param1, param2); 

URLConnection urlConnection = new URL(url).openConnection(); 
urlConnection.setUseCaches(false); 
urlConnection.setDoOutput(true); // Triggers POST. 
urlConnection.setRequestProperty("accept-charset", charset); 
urlConnection.setRequestProperty("content-type", "application/x-www-form-urlencoded"); 

OutputStreamWriter writer = null; 
try { 
    writer = new OutputStreamWriter(urlConnection.getOutputStream(), charset); 
    writer.write(query); // Write POST query string (if any needed). 
} finally { 
    if (writer != null) try { writer.close(); } catch (IOException logOrIgnore) {} 
} 

InputStream response = urlConnection.getInputStream(); 
// Now do your thing with the facebook response. 

Vous pouvez également utiliser plus convenienced HttpClient API pour cela:

String url = "http://facebook.com/some/api"; 
String charset = "UTF-8"; 
List<NameValuePair> params = new ArrayList<NameValuePair>(); 
params.add(new BasicNameValuePair("param1", "value1")); 
params.add(new BasicNameValuePair("param2", "value2")); 
UrlEncodedFormEntity query = new UrlEncodedFormEntity(params, charset); 

HttpClient client = new DefaultHttpClient() 
HttpPost post = new HttpPost(url); 
post.setEntity(query); 
InputStream response = client.execute(post).getEntity().getContent(); 
// Now do your thing with the facebook response. 
+0

merci beaucoup! Je viens de commencer à utiliser http://restfb.com/ qui fonctionne plutôt bien! – Eric

Questions connexes