public function getTwitterData($twitterProfiles) { $mainframe = JFactory::getApplication(); $params = $mainframe->getparams(); $limit = $params->get('limit'); $tweetDataList = array(); if (count($twitterProfiles) > 0) { $accessTokenData = RedSocialStreamHelper::getTwitterAccessToken(); include_once JPATH_COMPONENT . '/helpers/twitter/statuses.php'; $twitterStatuses = new TwitterStatuses(); foreach ($twitterProfiles as $twitterProfile) { if (isset($accessTokenData->access_token) && !empty($accessTokenData->access_token)) { $tweetList = $twitterStatuses->getUserTimeline($twitterProfile['title'], $accessTokenData->access_token, $limit); for ($i = 0; $i < count($tweetList); $i++) { $tweet = $tweetList[$i]; $tweetDataList[$twitterProfile['id']]['data'] = $tweet; $tweetDataList[$twitterProfile['id']]['profile_id'] = $twitterProfile['id']; $tweetDataList[$twitterProfile['id']]['title'] = ''; $tweetDataList[$twitterProfile['id']]['type'] = TWITTER; $tweetDataList[$twitterProfile['id']]['group_id'] = $twitterProfile['group_id']; $tweetDataList[$twitterProfile['id']]['source_link'] = "https://twitter.com/" . $tweet->user->screen_name . "/status" . $tweet->id_str; $tweetDataList[$twitterProfile['id']]['thumb_uri'] = $tweet->user->profile_image_url; if (isset($tweet->text)) { $tweetDataList[$twitterProfile['id']]['message'] = addslashes($tweet->text); } $tweetDataList[$twitterProfile['id']]['ext_profile_id'] = $tweet->user->id; $tweetDataList[$twitterProfile['id']]['ext_post_id'] = $tweet->id_str; $tweetDataList[$twitterProfile['id']]['ext_post_name'] = $tweet->user->screen_name; $tweetDataList[$twitterProfile['id']]['duration'] = ''; $tweetDataList[$twitterProfile['id']]['created_time'] = date("Y-m-d H:i:s", strtotime($tweet->created_at)); $tweetDataList[$twitterProfile['id']]['published'] = 1; } } } } return $tweetDataList; }
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; } }