Beispiel #1
0
 public function onSloginCheck()
 {
     $input = JFactory::getApplication()->input;
     $request = null;
     $code = $input->getString('oauth_verifier', '');
     $returnRequest = new SloginRequest();
     if ($code) {
         //получение значений из сессии
         $session = JFactory::getSession();
         $oauth_token = $session->get('oauth_token');
         $oauth_token_secret = $session->get('oauth_token_secret');
         $connection = new SloginTwitterOAuth($this->params->get('id'), $this->params->get('password'), $oauth_token, $oauth_token_secret);
         $access_token = $connection->getAccessToken($code);
         /* $access_token
            array(4) {
                ["oauth_token"]=> string(50) "831353905-gNje5thq0Mbdped9KMwIEQSzMLHvVntOyOZQndYj"
                ["oauth_token_secret"]=> string(43) "mnTSrmPh6lO0mLGfaUnqf3Ct7QVe4GdaIq4eQLmlE04"
                ["user_id"]=> string(9) "831353905"
                ["screen_name"]=> string(10) "ArkadiySed"
            }
            */
         if (200 == $connection->http_code) {
             $request = $connection->get('users/show', array('screen_name' => $access_token['screen_name']));
             //удаляем данные из сессии, уже не нужны
             $session->clear('oauth_token');
             $session->clear('oauth_signature');
             if (empty($request)) {
                 echo 'Error - empty user data';
                 exit;
             } else {
                 if (!empty($request->errors)) {
                     foreach ($request->errors as $errors) {
                         echo 'Error - ' . $errors->message;
                     }
                     exit;
                 }
             }
             //сохраняем данные токена в сессию
             //expire - время устаревания скрипта, метка времени Unix
             JFactory::getApplication()->setUserState('slogin.token', array('provider' => $this->provider, 'token' => $access_token, 'repost_comments' => $this->params->get('repost_comments', 0), 'slogin_user' => $request->id, 'app_id' => $this->params->get('id', 0), 'app_secret' => $this->params->get('password', 0)));
             $returnRequest->first_name = $request->name;
             $returnRequest->last_name = $request->screen_name;
             $returnRequest->id = $request->id;
             $returnRequest->real_name = $request->name . ' ' . $request->screen_name;
             $returnRequest->display_name = $request->screen_name;
             $returnRequest->all_request = $request;
             return $returnRequest;
         } else {
             echo 'Error - not connect to Twitter';
             exit;
         }
     } else {
         echo 'Error - empty code';
         exit;
     }
 }