示例#1
0
 public function getFacebookData($fbProfiles)
 {
     if (count($fbProfiles) > 0) {
         $accessTokenData = RedSocialStreamHelper::getFacebookAccessToken();
         include_once JPATH_COMPONENT . '/helpers/facebook/user.php';
         $fbUser = new FacebookUser();
         $fbDataList = array();
         foreach ($fbProfiles as $key => $profile) {
             if (isset($accessTokenData->access_token) && !empty($accessTokenData->access_token)) {
                 $fbFeedList = $fbUser->getFeeds($profile['title'], $accessTokenData->access_token);
                 if (!empty($fbFeedList->data) && count($fbFeedList->data) > 0) {
                     foreach ($fbFeedList->data as $feed) {
                         $fbDataList[$profile['id']]['data'] = $feed;
                         $fbDataList[$profile['id']]['created_time'] = strtotime($feed->created_time);
                         $fbDataList[$profile['id']]['type'] = FACEBOOK;
                         $fbDataList[$profile['id']]['ext_post_name'] = addslashes($feed->from->name);
                         $fbDataList[$profile['id']]['ext_profile_id'] = addslashes($feed->from->id);
                         $fbDataList[$profile['id']]['ext_post_id'] = addslashes($feed->id);
                         $fbDataList[$profile['id']]['message'] = "";
                         if (isset($feed->message)) {
                             $fbDataList[$profile['id']]['message'] = $feed->message;
                         }
                         if (isset($feed->story)) {
                             $fbDataList[$profile['id']]['message'] .= $feed->story;
                         }
                         if (isset($fbDataList[$profile['id']]['message'])) {
                             preg_match_all('/(http|https)\\:\\/\\/[a-zA-Z0-9\\-\\.]+\\.[a-zA-Z]{2,3}[^<]*/', str_replace("\n", "<br />", $fbDataList[$profile['id']]['message']), $out, PREG_PATTERN_ORDER);
                             foreach ($out[0] as $link) {
                                 $fbDataList[$profile['id']]['message'] = str_replace($link, "<a href=\"" . $link . "\">" . $link . "</a>", $fbDataList[$profile['id']]['message']);
                             }
                         }
                         if (isset($feed->picture)) {
                             $fbDataList[$profile['id']]['message'] .= "<div class=\"description_image facebook\">";
                             $fbDataList[$profile['id']]['message'] .= "<img src=\"" . $feed->picture . "\">";
                             $fbDataList[$profile['id']]['message'] .= "</div>";
                         }
                         $fbDataList[$profile['id']]['message'] = addslashes($fbDataList[$profile['id']]['message']);
                         $fbDataList[$profile['id']]['title'] = '';
                         $fbDataList[$profile['id']]['source_link'] = "kildelink";
                         $fbDataList[$profile['id']]['created_time'] = date("Y-m-d H:i:s", strtotime($feed->created_time));
                         $fbDataList[$profile['id']]['duration'] = '';
                         $fbDataList[$profile['id']]['profile_id'] = $key;
                         $fbDataList[$profile['id']]['group_id'] = $profile['group_id'];
                         $fbDataList[$profile['id']]['published'] = 1;
                         $fbDataList[$profile['id']]['thumb_uri'] = '';
                     }
                 }
             }
         }
         return $fbDataList;
     }
 }
示例#2
0
 public function getAccessToken()
 {
     // Get data which was redirect from social site
     $input = JFactory::getApplication()->input;
     $session = JFactory::getSession();
     $generateToken = $input->get('generate_token', '', 'STRING');
     $model = $this->getModel('AccessToken');
     $settingData = $session->get('settingData');
     $generateToken = $session->get('generateToken');
     $session->clear('generateToken');
     $session->clear('settingData');
     switch ($generateToken) {
         case 'facebook':
             $code = $input->get('code', '', 'STRING');
             $fbProfileId = $session->get('fbProfileId');
             $callbackUrl = $session->get('callbackUrl');
             $session->clear('fbProfileId');
             $session->clear('callbackUrl');
             $accessToken = "";
             if ($code != "") {
                 $accessToken = RedSocialStreamHelper::requestFbAccessToken($settingData['app_id'], $settingData['app_secret'], $callbackUrl, $code);
             }
             if (!empty($accessToken)) {
                 // Save to database
                 $data = RedSocialStreamHelper::getFacebookAccessToken($fbProfileId);
                 $now = date('Y-m-d H:i:s');
                 if (empty($data)) {
                     $data = new stdClass();
                     $data->created = $now;
                 }
                 $data->profile_id = $fbProfileId;
                 $data->access_token = $accessToken;
                 $data->updated = $now;
                 if ($model->saveFacebookAccessToken($data)) {
                     $msg = JText::_('COM_REDSOCIALSTREAM_FACEBOOK_TOKEN_GENERATED');
                     $level = 'MESSAGE';
                 } else {
                     $msg = $model->getError();
                     if (empty($msg)) {
                         $msg = JText::_('COM_REDSOCIALSTREAM_FACEBOOK_TOKEN_UNGENERATED');
                     }
                     $level = 'WARNING';
                 }
             } else {
                 $msg = JText::_('COM_REDSOCIALSTREAM_FACEBOOK_TOKEN_UNGENERATED');
                 $level = 'WARNING';
             }
             $this->setRedirect('index.php?option=com_redsocialstream&view=accesstoken', $msg, $level);
             break;
         case 'twitter':
             $twitterProfileId = $session->get('twitterProfileId');
             $session->clear('twitterProfileId');
             $bearerToken = RedSocialStreamHelper::requestTwitterAccessToken($settingData['twitter_consumer_key'], $settingData['twitter_consumer_sec']);
             if (!empty($bearerToken)) {
                 // Save to database
                 $data = RedSocialStreamHelper::getTwitterAccessToken($twitterProfileId);
                 $now = date('Y-m-d H:i:s');
                 if (empty($data)) {
                     $data = new stdClass();
                     $data->created = $now;
                 }
                 $data->profile_id = $twitterProfileId;
                 $data->access_token = $bearerToken;
                 $data->updated = $now;
                 if ($model->saveTwitterAccessToken($data)) {
                     $msg = JText::_('COM_REDSOCIALSTREAM_TWITTER_TOKEN_GENERATED');
                     $level = 'MESSAGE';
                 } else {
                     $msg = $model->getError();
                     if (empty($msg)) {
                         $msg = JText::_('COM_REDSOCIALSTREAM_TWITTER_TOKEN_UNGENERATED');
                     }
                     $level = 'WARNING';
                 }
             } else {
                 $msg = JText::_('COM_REDSOCIALSTREAM_TWITTER_TOKEN_UNGENERATED');
                 $level = 'WARNING';
             }
             $this->setRedirect('index.php?option=com_redsocialstream&view=accesstoken', $msg, $level);
             break;
         case 'linkedin':
             $code = $input->get('code', '', 'STRING');
             $linkedinProfileId = $session->get('linkedinProfileId');
             $callbackUrl = $session->get('callbackUrl');
             $session->clear('linkedinProfileId');
             $session->clear('callbackUrl');
             $accessToken = "";
             if ($code != "") {
                 $accessToken = RedSocialStreamHelper::requestLinkedinAccessToken($settingData['linked_api_key'], $settingData['linked_secret_key'], $callbackUrl, $code);
             }
             if (!empty($accessToken)) {
                 // Save to database
                 $data = RedSocialStreamHelper::getLinkinAccessToken($linkedinProfileId);
                 $now = date('Y-m-d H:i:s');
                 if (empty($data)) {
                     $data = new stdClass();
                     $data->created = $now;
                 }
                 $data->profile_id = $linkedinProfileId;
                 $data->access_token = $accessToken;
                 $data->updated = $now;
                 if ($model->saveLinkedinAccessToken($data)) {
                     $msg = JText::_('COM_REDSOCIALSTREAM_LINKEDIN_TOKEN_GENERATED');
                     $level = 'MESSAGE';
                 } else {
                     $msg = $model->getError();
                     if (empty($msg)) {
                         $msg = JText::_('COM_REDSOCIALSTREAM_LINKEDIN_TOKEN_UNGENERATED');
                     }
                     $level = 'WARNING';
                 }
             } else {
                 $msg = JText::_('COM_REDSOCIALSTREAM_LINKEDIN_TOKEN_UNGENERATED');
                 $level = 'WARNING';
             }
             $this->setRedirect('index.php?option=com_redsocialstream&view=accesstoken', $msg, $level);
             break;
         case 'youtube':
             break;
         default:
             break;
     }
 }