public function actionSaveToken() { $token = FbToken::model()->findByPk(1); $app_id = "286043231591201"; $app_secret = "4efa214db52acdafb2757124e0d55d9d"; if (strcmp($_POST['pwd'], 'bafio8989_') == 0) { $accessToken = $_POST['token']; $extended_url = "https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=" . $app_id . "&client_secret=" . $app_secret . "&fb_exchange_token=" . $accessToken; try { // Crea la risorsa CURL $ch = curl_init(); if (FALSE === $ch) { throw new Exception('failed to initialize'); } // Imposta l'URL e altre opzioni curl_setopt($ch, CURLOPT_URL, $extended_url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $output = curl_exec($ch); $extended_token = str_replace("access_token=", "", $output); $extended_token = substr($extended_token, 0, strpos($extended_token, "&")); if (FALSE === $output) { throw new Exception(curl_error($ch), curl_errno($ch)); } } catch (Exception $e) { trigger_error(sprintf('Curl failed with error #%d: %s', $e->getCode(), $e->getMessage()), E_USER_ERROR); } $token->token = $extended_token; $token->validate(); $token->save(); } else { echo 'no'; } }
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)); }