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