import java.util.ArrayList; import java.util.Collection; import java.util.EnumSet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; import org.w3c.dom.Document; import com.google.code.facebookapi.FacebookException; import com.google.code.facebookapi.FacebookXmlRestClient; import com.google.code.facebookapi.ProfileField; public class FacebookConnectAction extends DispatchAction { private String apiKey = "123"; private String secretToken = "456"; public ActionForward index( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ FacebookXmlRestClient client = new FacebookXmlRestClient (apiKey, secretToken); String url = "http://www.facebook.com/login.php?api_key=" + apiKey + "&v=1.0"; request.setAttribute("facebookUrl", url); return mapping.findForward("index"); } public ActionForward login( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ try { FacebookXmlRestClient client = new FacebookXmlRestClient(apiKey, secretToken); String authToken = request.getParameter("auth_token"); client.auth_getSession(authToken); long myid = client.users_getLoggedInUser(); Collection users = new ArrayList(); users.add(myid); EnumSet fields = EnumSet.of(ProfileField.NAME, ProfileField.PIC); Document d = client.users_getInfo(users, fields); String myname = d.getElementsByTagName("name").item(0).getTextContent(); String pic = d.getElementsByTagName("pic").item(0).getTextContent(); System.out.println("Name: " + myname); System.out.println("Pic: " + pic); } catch (FacebookException e) { e.printStackTrace(); } return mapping.findForward("login"); } }