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; } }
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; } }