Package com.theqsync.page

Source Code of com.theqsync.page.FacebookPage

package com.theqsync.page;

import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

import javax.faces.component.UIForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.json.JSONArray;
import org.json.JSONObject;
import org.w3c.dom.Document;

import com.google.code.facebookapi.FacebookException;
import com.google.code.facebookapi.FacebookJsonRestClient;
import com.google.code.facebookapi.FacebookXmlRestClient;
import com.google.code.facebookapi.IFacebookRestClient;
import com.theqsync.bean.FacebookBean;
import com.theqsync.dao.entity.FacebookContact;
import com.theqsync.resource.util.AbstractPage;
import com.theqsync.resource.util.FacebookUtil;

public class FacebookPage extends AbstractPage {
  private static final long serialVersionUID = 1L;

  public FacebookPage() {
    if (!isPostBack()) {
      try {
        HttpServletRequest request = getRequest();
        HttpSession session = request.getSession(true);
        String sessionKey = (String) session
            .getAttribute(FacebookUtil.SESSION_KEY);
        FacebookJsonRestClient client = new FacebookJsonRestClient(
            FacebookUtil.API_KEY, FacebookUtil.SECRET_KEY,
            sessionKey);
        FacebookContact facebookUser = null;
        Long uid = client.users_getLoggedInUser();
        if (uid != null) {
          facebookUser = new FacebookContact();
          facebookUser.setUserId(uid);

          /*
           * json ile
           */
          Vector<Long> userIds = new Vector<Long>();
          /*
           * Kendi Bilgilerinide alcaz
           */
          userIds.add(uid);

          /*
           * Kullan�c� Arkadas idlerini alcaz
           */
          JSONArray friendsId = client.friends_get();
          for (int i = 0; i < friendsId.length(); i++) {
            Long obje = friendsId.getLong(i);
            userIds.add(obje);
          }

          /*
           * Ki�i bilgilerini al
           */
          JSONArray friendsDetail = client.users_getInfo(userIds,
              FacebookUtil.fields);
          List<FacebookContact> contacts = new ArrayList<FacebookContact>();
          for (int i = 0; i < friendsDetail.length(); i++) {
            JSONObject obje = friendsDetail.getJSONObject(i);
            FacebookContact contact = new FacebookContact();
            contact.createFromJSONObject(obje);
            contacts.add(contact);
          }
          FacebookBean iBean = (FacebookBean) getBean("facebookBean");
          iBean.setFacebookContacts(contacts);
        } else {
          error("Facebook Login Failed");
        }
      } catch (FacebookException e) {
        if (e.toString().indexOf("not authorized") > 0
            || e.toString().indexOf("session has been invalidated") > 0) {
          HttpServletRequest request = getRequest();
          HttpSession session = request.getSession();
          IFacebookRestClient<Document> userClient = FacebookUtil
              .getUserClient(session);
          if (userClient == null) {
            userClient = new FacebookXmlRestClient(
                FacebookUtil.API_KEY, FacebookUtil.SECRET_KEY);
            session.setAttribute(FacebookUtil.FACEBOOK_USER_CLIENT,
                userClient);
          }
          navigate(FacebookUtil.LOGIN_URL);
        } else {
          error(e);
        }
      } catch (Exception e) {
        error(e);
      }
    }
  }

  private UIForm form;

  public UIForm getForm() {
    return form;
  }

  public void setForm(UIForm form) {
    this.form = form;
  }
}
TOP

Related Classes of com.theqsync.page.FacebookPage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.