package com.rau.evoting.beans; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.faces.context.FacesContext; import javax.servlet.http.HttpServletRequest; import com.rau.evoting.data.UserDP; import com.rau.evoting.data.UserGroupDP; import com.rau.evoting.models.UserGroup; import com.rau.evoting.utils.FacebookService; import com.restfb.Connection; import com.restfb.DefaultFacebookClient; import com.restfb.FacebookClient; import com.restfb.types.Group; import com.restfb.types.User; /** * @author Aram * */ public class Home { public Home() { } public void getAccessToken() { System.out.println("home init"); if (!FacesContext.getCurrentInstance().getExternalContext() .getSessionMap().containsKey("accessToken")) { HttpServletRequest req = (HttpServletRequest) FacesContext .getCurrentInstance().getExternalContext().getRequest(); String code = req.getParameter("code"); String accessToken = FacebookService.getInstance().getAccessToken( code, "Home.xhtml"); FacebookClient fbClient = new DefaultFacebookClient(accessToken); User user = fbClient.fetchObject("me", User.class); int userId = UserDP.insert(user.getId(), user.getEmail()); Map<String, Object> sessionMap = FacesContext.getCurrentInstance() .getExternalContext().getSessionMap(); sessionMap.put("accessToken", accessToken); Connection<Group> gr = fbClient.fetchConnection("me/groups", Group.class); List<Group> groups = gr.getData(); List<UserGroup> userGroups = new ArrayList<UserGroup>(); for(Group g: groups) { userGroups.add(new UserGroup(g.getId(),userId,g.getName())); } sessionMap.put("userGroups", userGroups); UserGroupDP.insert(userId, userGroups); sessionMap.put("userId", userId); sessionMap.put("username", user.getName()); } return; } public String getUsername() { String username = (String) FacesContext.getCurrentInstance() .getExternalContext().getSessionMap().get("username"); return username; } }