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;
 }
Esempio n. 3
0
 /**
  * @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);
     }
 }
Esempio n. 4
0
 /**
  * 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();
             }
         }
     }
 }
Esempio n. 5
0
 /**
  * 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);
 }
Esempio n. 6
0
 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));
 }
Esempio n. 7
0
 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;
 }
Esempio n. 8
0
 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'));
 }
Esempio n. 10
0
 /**
  * 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);
 }