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