function getUserImage($user_id, $facebook_id, $facebook_type = NULL, $width = NULL, $height = NULL) { $fileName = USER_IMG_PATH . "/" . getEncryptedString($user_id) . ".jpg"; if (!is_file($fileName)) { if (!empty($facebook_id)) { $returnValue = getFacebookUserImageSource($facebook_id, $facebook_type, $width, $height); } else { $returnValue = base_url(NO_IMAGE_PATH); } } else { $returnValue = base_url($fileName); } return $returnValue; }
public function facebookAuth($connect = FALSE) { if ($this->input->get('code')) { $this->load->library("SocialLib"); $model = new Common_model(); $socialLib = new SocialLib(); $facebook_user_obj = $socialLib->getFacebookUserObject(); if ($facebook_user_obj['status'] == 'success') { if (!empty($facebook_user_obj['data'])) { $facebook_id = $facebook_user_obj['data']['id']; $facebook_access_token = $facebook_user_obj['accessToken']; if ($connect == FALSE) { if (isset($facebook_user_obj['data']['email'])) { $facebook_name = $facebook_user_obj['data']['name']; $facebook_email = $facebook_user_obj['data']['email']; $is_exists = $model->is_exists('user_password', TABLE_USERS, array('user_email' => $facebook_email, 'user_facebook_id' => $facebook_id)); if (empty($is_exists)) { // get user profile picture here $facebook_image_url = getFacebookUserImageSource($facebook_id, NULL, USER_IMG_WIDTH); $new_image_path = USER_IMG_PATH . '/' . getEncryptedString($facebook_id . time()) . '.jpg'; copy($facebook_image_url, $new_image_path); $user_password = md5($facebook_id . time()); $data_array = array('user_fullname' => addslashes($facebook_name), 'user_email' => $facebook_email, 'user_facebook_id' => $facebook_id, 'user_facebook_accesstoken' => $facebook_access_token, 'user_facebook_array' => json_encode($facebook_user_obj), 'user_created_on' => date('Y-m-d H:i:s'), 'user_ipaddress' => USER_IP, 'user_useragent' => USER_AGENT, 'user_password' => $user_password, 'user_username' => getUniqueUsernameFromEmail($facebook_email), 'user_profile_picture' => $new_image_path); $model->insertData(TABLE_USERS, $data_array); $this->session->set_flashdata('success', 'Welcome aboard, ' . $facebook_name); } else { $user_password = $is_exists[0]['user_password']; } // loggin user in $this->load->library('Login_auth'); $login_auth = new Login_auth(); $login_auth->login($facebook_email, $user_password, base_url('my-account'), base_url('login')); } else { $this->session->set_flashdata('error', 'Email required when logging in with Facebook'); redirect(base_url('login')); } } elseif ($connect == 'connect' && isset($this->session->userdata['user_id'])) { $user_id = $this->session->userdata['user_id']; $next_url = base_url('my-account'); $is_exists = $model->is_exists('user_id', TABLE_USERS, array('user_id !=' => $user_id, 'user_facebook_id' => $facebook_id)); if (empty($is_exists)) { $data_array = array('user_facebook_id' => $facebook_id, 'user_facebook_accesstoken' => $facebook_access_token, 'user_facebook_array' => json_encode($facebook_user_obj)); $model->updateData(TABLE_USERS, $data_array, array('user_id' => $this->session->userdata['user_id'])); $this->session->set_flashdata('success', 'Facebook account connected successfully'); if ($this->input->get('next')) { $next_url = $this->input->get('next'); } } else { $this->session->set_flashdata('error', 'Another user already exists with this Facebook account'); } redirect($next_url); } } else { $this->session->set_flashdata('error', 'An error occurred. Please try again.'); redirect(base_url('login')); } } else { $this->session->set_flashdata('error', $facebook_user_obj['data']); redirect(base_url('login')); } } else { display_404_page(); } }