G.Morreale
 Introduction:
 
 
 This article explain the facebook java api through an example.
 
 
 First you need a facebook account, and you have to enable "Developer" application.
 
 
 
 Then you must configure you account and make a new application configuration in order to obtain 
 
 
 "api key" and "secret key".
 
 
 This can be accomplished by reading http://developers.facebook.com/get_started.php
 
 
 The Server
 
 
 You need a java web server (tomcat, glassfish, jboss etc.) available by the web.
 
 
 Localhost server isn't ok to facebook integration purpose.
 
 
 Facebook Java Api
 
 
 If you want to interact with facebook platform a client library can be very useful.
 
 
 Client library are available in different languages:http://wiki.developers.facebook.com/index.php/Client_Libraries
 
 
 There isn't a officiale Java api but you can choose alternative unofficial ones:
 
 
 I prefer the last one.
 
 
 So go to http://code.google.com/p/facebook-java-api/ and download facebook-java-api-2.0.4.bin.zip (or later).
 
 
 When you download it, extract the jar into a directory and get it available in you facebook example application classpath.
 
 
 Facebook server make available user data, photos, groups infos etc by rest api:http://wiki.developers.facebook.com/index.php/API
 
 
 The Facebook Client Project
 
 
 Make a new Web project, and make a new empty servlet.
 
 
 The servlet url-pattern configured in web.xml must be the same indicated in facebook application configuration.
 
 
 The Source Code
 
 
 public class index extends HttpServlet
 
 
 {
 
 
     //facebook give it!
 
 
     String apiKey = "your api key";
 
 
     String secretKey = "your secret key";
 
 
     protected void processRequest(HttpServletRequest request, HttpServletResponse response)
 
 
             throws ServletException, IOException
 
 
     {
 
 
         response.setContentType("text/html;charset=UTF-8");
 
 
         PrintWriter out = response.getWriter();
 
 
         try
 
 
         {
 
 
             out.println("<h2>User information</h2>");
 
 
             //facebook login mechanism give you by http parameter the session key
 
 
             //needed for client api request.
 
 
             String sessionKey = request.getParameter(FacebookParam.SESSION_KEY.toString());
 
 
             //initialize a facebook xml client (you can choose different client version: xml, jaxb or json)
 
 
             //the init is done by apiKey, secretKey and session key previosly requested
 
 
             FacebookXmlRestClient client = new FacebookXmlRestClient(apiKey, secretKey, sessionKey);
 
 
             //This code line obtain the user logged id
 
 
             Long uid = client.users_getLoggedInUser();
 
 
             //print user info.
 
 
             out.println(printUserInfo(uid, client, sessionKey));
 
 
 }
 
  
private String printUserInfo(Long uid, FacebookXmlRestClient client, String sessionKey) throws FacebookException    {        StringBuffer ret = new StringBuffer();        //init array parameter        ArrayList<Long> uids = new ArrayList<Long>(1);        uids.add(uid);        //init field parameter - we choose all profile infos.        List<ProfileField> fields = Arrays.asList(ProfileField.values());
        //init the client in order to make the xml request        client = new FacebookXmlRestClient(apiKey, secretKey, sessionKey);        //get the xml document containing the infos        Document userInfoDoc = client.users_getInfo(uids, fields);
        //for each info append it to returned string buffer        for (ProfileField pfield : fields)        {            ret.append(pfield.fieldName()).append(" <b>").append(userInfoDoc.getElementsByTagName(pfield.fieldName()).            item(0).getTextContent()).append("</b>");            ret.append("</br>");        }        return ret.toString();    }
Conclusion 
In this simple manner you can print all logged facebook user info into facebook application.
In order to make a cleary client authentication by using java servlet filter you can read this:http://www.theliveweb.net/blog/2007/10/31/facebook-authentication-using-java/