Beispiel #1
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;
     }
 }