public function testAppSecretProof() { FacebookSession::enableAppSecretProof(true); $request = new FacebookRequest(FacebookTestHelper::$testSession, 'GET', '/me'); $this->assertTrue(isset($request->getParameters()['appsecret_proof'])); FacebookSession::enableAppSecretProof(false); $request = new FacebookRequest(FacebookTestHelper::$testSession, 'GET', '/me'); $this->assertTrue(!isset($request->getParameters()['appsecret_proof'])); }
/** * Initializes facebook's connection. * * @throws FacebookRequestException * @throws \Exception */ private function initialize() { FacebookSession::enableAppSecretProof(false); $session = new FacebookSession($this->accessToken); try { $session->validate(); } catch (FacebookRequestException $e) { $this->entry->addException($e->getMessage()); } catch (\Exception $e) { $this->entry->addException($e->getMessage()); } $this->session = $session; }
/** * @param FacebookSession $session A Facebook API session * @param LoggerInterface $logger A PSR-3 compatible logger */ public function __construct(FacebookSession $session, LoggerInterface $logger = null) { $this->session = $session; $this->logger = $logger ?: new NullLogger(); if (static::instance() === null) { static::setInstance($this); } try { FacebookSession::_getTargetAppSecret(); } catch (FacebookSDKException $f) { // Disable sending app secret proof and warn FacebookSession::enableAppSecretProof(false); trigger_error('You should set a default app id and secret, see the README.md file ' . 'for more information.', E_USER_DEPRECATED); } }
/** * Grab the user's ungrabbed posts from Facebook * * @param \yii\authclient\BaseOAuth $client */ public static function grabSocial(\yii\authclient\BaseOAuth $client) { if ($client->getId() === 'facebook') { $token = $client->getAccessToken(); \Facebook\FacebookSession::enableAppSecretProof(false); $session = new \Facebook\FacebookSession($token->getToken()); $request = new \Facebook\FacebookRequest($session, 'GET', "/me/posts"); $response = $request->execute()->getResponse(); $posts = $response->data; foreach ($posts as $post) { if (!Fbposts::find()->where('post_id = :pid', ['pid' => $post->id])->exists()) { $fbpost = new Fbposts(['user_id' => Yii::$app->user->id, 'post_id' => $post->id, 'message' => isset($post->message) ? $post->message : $post->story, 'created_time' => $post->created_time]); $fbpost->save(); } } } }
/** * Create a new user * * @param Request $request * @return Response * @throws FacebookRequestException */ public function addAction(Request $request) { $data = $request->json()->get('User'); if (!$data) { return showErrorResponse('Incorrect request parameters', HTTP_UNPROCESSABLE_ENTITY); } try { $new_user = new Users(); $new_user->addUser($data); } catch (\Exception $e) { return showErrorResponse($e->getMessage()); } //Send push notifications to all Facebook friends who are using Masarap $fb_access_token = $data[CONSTANTS::KEY_FB_ACCESS_TOKEN]; if (!$fb_access_token) { return showErrorResponse('Failed to access Facebook account'); } FacebookSession::setDefaultApplication(Config::get('services.facebook.client_id'), Config::get('services.facebook.client_secret')); FacebookSession::enableAppSecretProof(false); $facebook_session = new FacebookSession($fb_access_token); $facebook_response = (new FacebookRequest($facebook_session, 'GET', '/me/friends/'))->execute(); $friend_list = $facebook_response->getResponse(); $failed_notifications = array(); foreach ($friend_list->data as $friend) { $friend_user = Users::getByFbId($friend->id); if (!$friend_user) { continue; } $params = array(CONSTANTS::KEY_USER_ID_FROM => $new_user->id, CONSTANTS::KEY_USER_ID_TO => $friend_user->id, CONSTANTS::KEY_TYPE => CONSTANTS::NOTIFICATION_TYPE_FRIEND_JOIN, CONSTANTS::KEY_TYPE_ID => $new_user->id); try { $notification = new Notification(); $notification->addGeneralNotification($params); } catch (\Exception $e) { $failed_notifications[] = $friend_user->id; } } $json_return[KeyParser::data] = array(KeyParser::user => ModelFormatter::userLongFormat($new_user), KeyParser::message => 'User successfully registered and push notifications are sent to Facebook friends', KeyParser::unsent_notifications => $failed_notifications); return response()->json($json_return); }
public function examin_degree_group($cid) { set_time_limit(0); $this->readBadWords(); $group = DegreeGroup::model()->findByPk($cid); /*if(!isset($group)){ $group = new DegreeGroup(); $group->cid = $_POST['DegreeGroup']['cid']; $group->degree_id = $_POST['DegreeGroup']['degree_id']; }*/ // $degree_group = DegreeGroup::model()->findByAttributes(array('degree_id' => $group->degree_id)); if (isset($group->cid)) { FacebookSession::enableAppSecretProof(false); FacebookSession::setDefaultApplication('286043231591201', '4efa214db52acdafb2757124e0d55d9d'); $extended_token = FbToken::model()->findByPk(1); $session = new FacebookSession($extended_token->token); $extract_group_info = (new FacebookRequest($session, 'GET', '/' . $group->cid))->execute()->getGraphObject(GraphUser::className()); $this->saveDegreeGroupInfo($extract_group_info, $group->degree_id); $limit = 25; $offset = 0; $extract_group_members = (new FacebookRequest($session, 'GET', '/' . $group->cid . '/members?limit=' . $limit . '&offset=' . $offset))->execute()->getGraphObject(GraphUser::className()); while ($extract_group_members->getProperty('data')->getProperty(0) != null) { $this->saveGroupMember($extract_group_members->getProperty('data'), $group->cid, 'Degree'); $next = ''; if ($extract_group_members->getProperty('paging') != null && $extract_group_members->getProperty('paging')->getProperty('next') != null) { $next = $extract_group_members->getProperty('paging')->getProperty('next'); $next = str_replace('https://graph.facebook.com/v2.0/', '', $next); $next = str_replace('https://graph.facebook.com/v2.1/', '', $next); $extract_group_members = (new FacebookRequest($session, 'GET', '/' . $next))->execute()->getGraphObject(GraphUser::className()); } else { $extract_group_members = null; } // $offset = $offset + $limit; // $extract_group_members = (new FacebookRequest( // $session, 'GET', '/'.$group->cid.'/members?limit='.$limit.'&offset='.$offset // ))->execute()->getGraphObject(GraphUser::className()); } $limit = 25; $offset = 0; if (isset($group->update_time)) { $since = "since=" . $group->update_time; } else { $since = "since=5+years+ago"; } $until = date("Y-m-d") . " " . date("H:i:s"); $until = DateTime::createFromFormat('Y-m-d H:i:s', $until); $until->sub(new DateInterval('P3D')); $o = new ReflectionObject($until); $p = $o->getProperty('date'); $until = $p->getValue($until); $extract_group_feed = array(); try { $extract_group_feed = (new FacebookRequest($session, 'GET', '/' . $group->cid . '/feed?limit=10000&' . $since . '&until=' . $until))->execute()->getGraphObject(GraphUser::className()); } catch (Exception $e) { try { $extract_group_feed = (new FacebookRequest($session, 'GET', '/' . $group->cid . '/feed?limit=1000&' . $since . '&until=' . $until))->execute()->getGraphObject(GraphUser::className()); } catch (Exception $e) { try { $extract_group_feed = (new FacebookRequest($session, 'GET', '/' . $group->cid . '/feed?limit=500&' . $since . '&until=' . $until))->execute()->getGraphObject(GraphUser::className()); } catch (Exception $e) { echo " eccezione "; } } } $result = ''; while ($extract_group_feed->getProperty('data') != null) { $j = 0; $extract_group_feed_data = ' '; $post_to_save = array('data' => array()); $limit_cicle = 0; $extract_group_feed_data = $extract_group_feed->getProperty('data')->getProperty(0); while ($extract_group_feed_data != null) { // $result = $this->verifyText($extract_group_feed_data, $group->degree_id); if ($result == '') { $this->saveGroupFeed($extract_group_feed, $group->cid, 'Degree', $session, $limit_cicle); } else { $course = Courses::model()->findByAttributes(array('name' => $result, 'degree_id' => $group->degree_id)); $exam_group = ''; if ($course != null) { $exam_group = ExamGroup::model()->findByAttributes(array('courses_id' => $course->cid)); } if ($course != null) { if ($exam_group == null) { $exam_group = new ExamGroup(); $criteria = new CDbCriteria(); $criteria->select = 'MIN(eid) AS min'; $row = $exam_group->model()->find($criteria); $min_id = $row['min']; $exam_group->eid = $min_id - 1; } $exam_group->degree_id = $group->degree_id; $exam_group->degree_group_id = $group->cid; $exam_group->courses_id = $course->cid; $exam_group->name = $course->name; $exam_group->validate(); $exam_group->save(); $this->saveGroupFeed($extract_group_feed, $exam_group->eid, 'Exam', $session, $limit_cicle); } else { $this->saveGroupFeed($extract_group_feed, $group->cid, 'Degree', $session, $limit_cicle); } } $j++; $limit_cicle = $j; $extract_group_feed_data = $extract_group_feed->getProperty('data')->getProperty($j); } $next = ''; if ($extract_group_feed->getProperty('paging') != null) { $next = $extract_group_feed->getProperty('paging')->getProperty('next'); $next = str_replace('https://graph.facebook.com/v2.0/', '', $next); $next = str_replace('https://graph.facebook.com/v2.1/', '', $next); $extract_group_feed = (new FacebookRequest($session, 'GET', '/' . $next))->execute()->getGraphObject(GraphUser::className()); } else { $extract_group_feed = null; } // $extract_group_feed = (new FacebookRequest( // $session, 'GET', '/'.$group->cid.'/feed?limit='.$limit.'&offset='.$offset // ))->execute()->getGraphObject(GraphUser::className()); } $group = DegreeGroup::model()->findByPk($cid); $datetime = DateTime::createFromFormat(DateTime::ISO8601, $extract_group_info->getProperty('updated_time')); $o = new ReflectionObject($datetime); $p = $o->getProperty('date'); $date = $p->getValue($datetime); $group->update_time = $date; $group->validate(); $group->save(); /* $limit = 25; $offset = 0; $extract_group_docs = (new FacebookRequest( $session, 'GET', '/'.$group->cid.'/docs?limit=15000&since=5+years+ago&until=now' ))->execute()->getGraphObject(GraphUser::className()); while($extract_group_docs->getProperty('data') != null){ $this->saveGroupDocs($extract_group_docs, $group->cid,'Degree'); $next = ''; if($extract_group_docs->getProperty('paging') != null && $extract_group_docs->getProperty('paging')->getProperty('next') != null){ $next = $extract_group_docs->getProperty('paging')->getProperty('next'); $next = str_replace('https://graph.facebook.com/v2.0/', '', $next); $next = str_replace('https://graph.facebook.com/v2.1/', '', $next); $extract_group_docs = (new FacebookRequest( $session, 'GET', '/'.$next ))->execute()->getGraphObject(GraphUser::className()); }else{ $extract_group_docs = null; } // $offset = $offset + $limit; // $extract_group_docs = (new FacebookRequest( // $session, 'GET', '/'.$group->cid.'/docs?limit='.$limit.'&offset='.$offset // ))->execute()->getGraphObject(GraphUser::className()); } */ /* $limit = 25; $offset = 0; $extract_group_files = (new FacebookRequest( $session, 'GET', '/'.$group->cid.'/files?limit=15000&since=5+years+ago&until=now' ))->execute()->getGraphObject(GraphUser::className()); while($extract_group_files != null && $extract_group_files->getProperty('data') != null){ $this->saveGroupFiles($extract_group_files, $group->cid, 'Degree'); $next = ''; if($extract_group_files->getProperty('paging') != null && $extract_group_files->getProperty('paging')->getProperty('next') != null ){ $next = $extract_group_files->getProperty('paging')->getProperty('next'); $next = str_replace('https://graph.facebook.com/v2.0/', '', $next); $next = str_replace('https://graph.facebook.com/v2.1/', '', $next); $extract_group_files = (new FacebookRequest( $session, 'GET', '/'.$next ))->execute()->getGraphObject(GraphUser::className()); }else{ $extract_group_files = null; } // $offset = $offset + $limit; // $extract_group_files = (new FacebookRequest( // $session, 'GET', '/'.$group->cid.'/files?limit='.$limit.'&offset='.$offset // ))->execute()->getGraphObject(GraphUser::className()); } */ } $this->performAjaxValidation2($group); //$this->render('results', array('group'=> $group)); }
static function create_facebook_account($redirect_url) { $response = array('status' => false); $config = get_config('facebook'); $helper = new FacebookRedirectLoginHelper(base_url('login/facebook'), $config['app_id'], $config['app_secret']); FacebookSession::enableAppSecretProof(false); $session = $helper->getSessionFromRedirect(); $userdata = $_SESSION['check_login']; if (isset($session) && $userdata) { // get long term token $accessToken = $session->getAccessToken(); $facebook_user_token = $accessToken->extend($config['app_id'], $config['app_secret']); // graph api request for user data $request = new FacebookRequest($session, 'GET', '/me?fields=first_name,last_name,email'); $response = $request->execute(); // get response $graphObject = $response->getGraphObject(); $user = Users_Model::find_by_email($graphObject->getProperty('email')); if (sizeof($user) <= 0) { $user = new Users_Model(); } $user->first_name = $graphObject->getProperty('first_name'); $user->last_name = $graphObject->getProperty('last_name'); $user->email = $graphObject->getProperty('email'); $user->type = self::USER_TYPE_FACEBOOK; $user->registration_date = date("Y-m-d H:i:s"); $user->save(); /** * Update social meta key */ $UserMeta = Usermetum::find_by_user_id_and_meta_key_and_meta_value($user->user_id, 'social_type', 'facebook'); if (sizeof($UserMeta) <= 0) { $UserMeta = new Usermetum(); } $UserMeta->user_id = $user->user_id; $UserMeta->meta_key = 'social_type'; $UserMeta->meta_value = 'facebook'; $UserMeta->save(); /** * Save user long token */ $UserMeta = Usermetum::find_by_user_id_and_meta_key_and_meta_value($user->user_id, 'social_type', 'facebook'); if (sizeof($UserMeta) <= 0) { $UserMeta = new Usermetum(); } $UserMeta->user_id = $user->user_id; $UserMeta->meta_key = 'facebook_user_token'; $UserMeta->meta_value = $facebook_user_token; $UserMeta->save(); /** * Update social meta value */ $UserMeta = Usermetum::find_by_user_id_and_meta_key_and_meta_value($user->user_id, 'social_id', $graphObject->getProperty('id')); if (sizeof($UserMeta) <= 0) { $UserMeta = new Usermetum(); } $UserMeta->user_id = $user->user_id; $UserMeta->meta_key = 'social_id'; $UserMeta->meta_value = $graphObject->getProperty('id'); $UserMeta->save(); // see if we have a session $_SESSION['login'] = array('user_id' => $user->user_id, 'email' => $graphObject->getProperty('email'), 'user_level' => 1, 'first_name' => $graphObject->getProperty('first_name'), 'last_name' => $graphObject->getProperty('last_name')); $response = array('status' => 'redirect', 'url' => base_url("Dashboard")); } else { $permissions = array('publish_actions', 'email', 'user_location', 'user_birthday', 'user_likes', 'public_profile', 'user_friends'); $_SESSION['check_login'] = true; $loginUrl = $helper->getLoginUrl($permissions); $response = array('status' => 'redirect', 'url' => $loginUrl); } return $response; }
public function api($params, $path, $id = false, $session = false) { if (!$this->session && ${${"GLOBALS"}["aksbebw"]}) { FacebookSession::enableAppSecretProof(false); $this->session = FacebookSession::newAppSession(); } if ($this->session) { try { $tcfjgobu = "params"; $skkiybshouo = "objects"; ${"GLOBALS"}["bpcqqafmbh"] = "objects"; ${"GLOBALS"}["idogdltxft"] = "path"; ${${"GLOBALS"}["rvfbvujkf"]} = (new FacebookRequest($this->session, ${${"GLOBALS"}["idogdltxft"]}, ${$tcfjgobu}, ${${"GLOBALS"}["bwisnqcgi"]}))->execute(); ${${"GLOBALS"}["bpcqqafmbh"]} = $request->getGraphObject()->asArray(); return ${$skkiybshouo}; } catch (FacebookSDKException $e) { return array("error" => $e->getMessage()); } catch (FacebookRequestException $e) { return array("error" => $e->getMessage()); } catch (FacebookAuthorizationException $e) { return array("error" => $e->getMessage()); } } }
public function __construct() { FacebookSession::setDefaultApplication(Config::get('social.facebook.app_id'), Config::get('social.facebook.app_secret')); FacebookSession::enableAppSecretProof(Config::get('social.facebook.app_secret_proof')); }
/** * Returns a list of Facebook friends who are using Masarap which you have not yet followed * * @param Request $request * @return Response * @throws FacebookRequestException */ public function followFBUsersAction(Request $request) { $json_return[KeyParser::data] = array(KeyParser::users => array()); $data = $request->json()->get('User'); if (!$data) { return showErrorResponse('Incorrect request parameters', HTTP_UNPROCESSABLE_ENTITY); } $user_id = $data[CONSTANTS::KEY_ID]; $fb_access_token = $data[CONSTANTS::KEY_FB_ACCESS_TOKEN]; if (!$fb_access_token) { return showErrorResponse('Failed to access Facebook account'); } FacebookSession::setDefaultApplication(Config::get('services.facebook.client_id'), Config::get('services.facebook.client_secret')); FacebookSession::enableAppSecretProof(false); $facebook_session = new FacebookSession($fb_access_token); $facebook_response = (new FacebookRequest($facebook_session, 'GET', '/me/friends?limit=5000'))->execute(); $friend_list = $facebook_response->getResponse(); $facebook_friends = array(); $followed_users = array(); $friend_count = 0; foreach ($friend_list->data as $friend) { $friend_user = Users::getByFbId($friend->id); if (!$friend_user) { continue; } $is_followed = Follow::isFollowed($user_id, $friend_user->id); $follower_count = Follow::getCountByUserId($friend_user->id, CONSTANTS::FOLLOW_FOLLOWER); $review_count = Reviews::getCountByUserId($friend_user->id); if (!$is_followed && $friend_user->id != $user_id) { $facebook_friends[$friend_count] = ModelFormatter::userFormat($friend_user); $facebook_friends[$friend_count] += array(KeyParser::follower_count => $follower_count, KeyParser::review_count => $review_count, KeyParser::is_followed_by_viewer => $is_followed); } elseif ($is_followed && $friend_user->id != $user_id) { $followed_users[$friend_count] = ModelFormatter::userFormat($friend_user); $followed_users[$friend_count] += array(KeyParser::follower_count => $follower_count, KeyParser::review_count => $review_count, KeyParser::is_followed_by_viewer => $is_followed); } $friend_count++; } $facebook_friends = array_merge($facebook_friends, $followed_users); $json_return[KeyParser::data][KeyParser::users] = $facebook_friends; return response()->json($json_return); }