当前位置: 首页>>代码示例>>PHP>>正文


PHP TwitterOAuth::getAccessToken方法代码示例

本文整理汇总了PHP中TwitterOAuth::getAccessToken方法的典型用法代码示例。如果您正苦于以下问题:PHP TwitterOAuth::getAccessToken方法的具体用法?PHP TwitterOAuth::getAccessToken怎么用?PHP TwitterOAuth::getAccessToken使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在TwitterOAuth的用法示例。


在下文中一共展示了TwitterOAuth::getAccessToken方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: callBack

 public function callBack()
 {
     /* If the oauth_token is old redirect to the connect page. */
     //	if (isset($_REQUEST['oauth_token']) && $_SESSION['oauth_token'] !== $_REQUEST['oauth_token'])
     if (isset($_REQUEST['oauth_token']) && $this->session->userdata('oauth_token') !== $_REQUEST['oauth_token']) {
         //		$_SESSION['oauth_status'] = 'oldtoken';
         //		header('Location: ./clearsessions.php');
         echo "bad oauth_token";
         return false;
     }
     /* Create TwitteroAuth object with app key/secret and token key/secret from default phase */
     $connection = new TwitterOAuth(_TWITTER_CONSUMER_KEY_, _TWITTER_CONSUMER_SECRET_, $this->session->userdata('oauth_token'), $this->session->userdata('oauth_token_secret'));
     /* Request access tokens from twitter */
     $access_token = $connection->getAccessToken($_REQUEST['oauth_verifier']);
     /* Save the access tokens. Normally these would be saved in a database for future use. */
     $_SESSION['access_token'] = $access_token;
     $this->db_update("users", $access_token, array("id" => $this->session->userdata('id')));
     //		/* Remove no longer needed request tokens */
     //		unset($_SESSION['oauth_token']);
     //		unset($_SESSION['oauth_token_secret']);
     /* If HTTP response is 200 continue otherwise send to connect page to retry */
     if (200 == $connection->http_code) {
         /* The user has been verified and the access tokens can be saved for future use */
         //			$_SESSION['status'] = 'verified';
         //			header('Location: ./index.php');
         echo "TWITTER OK";
     } else {
         /* Save HTTP status for error dialog on connnect page.*/
         //			header('Location: ./clearsessions.php');
         echo "ERROR";
     }
 }
开发者ID:yasirgit,项目名称:alchemy,代码行数:32,代码来源:twitter.php

示例2: getUserAccessToken

 function getUserAccessToken()
 {
     $session_access_token = $this->constructSessionVariableName("access_token");
     $token = NULL;
     if (isset($_SESSION[$session_access_token])) {
         $token = $_SESSION[$session_access_token];
         if (!$token || !isset($token["oauth_token"])) {
             unset($_SESSION[$session_access_token]);
         }
     }
     if (!$token) {
         $session_request_token = $this->constructSessionVariableName("oauth_request_token");
         $session_request_token_secret = $this->constructSessionVariableName("oauth_request_token_secret");
         if (isset($_SESSION[$session_request_token]) && isset($_SESSION[$session_request_token_secret])) {
             $to = new TwitterOAuth($this->getTwitter()->consumer->key, $this->getTwitter()->consumer->secret, $_SESSION[$session_request_token], $_SESSION[$session_request_token_secret]);
             $token = $to->getAccessToken($_REQUEST['oauth_verifier']);
             if (!$token || !isset($token["oauth_token"])) {
                 unset($_SESSION[$session_request_token]);
                 unset($_SESSION[$session_request_token_secret]);
             } else {
                 $session_var_name = $this->constructSessionVariableName("access_token");
                 $_SESSION[$session_var_name] = $token;
             }
         }
     }
     return $token;
 }
开发者ID:ateliee,项目名称:php_lib,代码行数:27,代码来源:class_twitter.php

示例3: initComment

 public static function initComment($api)
 {
     session_start();
     $options = Typecho_Widget::widget('Widget_Options');
     $config = $options->plugin('ConnectToTwitter');
     //发送请求到twitter
     if (isset($api->request->connect_to_twitter)) {
         $to = new TwitterOAuth($config->consumerKey, $config->consumerSecret);
         $tok = $to->getRequestToken();
         Typecho_Cookie::set('oauth_request_token', $tok['oauth_token']);
         Typecho_Cookie::set('oauth_request_token_secret', $tok['oauth_token_secret']);
         /* Build the authorization URL */
         $request_link = $to->getAuthorizeURL($tok['oauth_token']);
         header('Location:' . $request_link);
     }
     //从twitter返回
     if (isset($api->request->oauth_token)) {
         if (Typecho_Cookie::get('oauth_request_token') && Typecho_Cookie::get('oauth_request_token_secret')) {
             $to = new TwitterOAuth($config->consumerKey, $config->consumerSecret, Typecho_Cookie::get('oauth_request_token'), Typecho_Cookie::get('oauth_request_token_secret'));
             $tok = $to->getAccessToken();
             Typecho_Cookie::set('oauth_access_token', $tok['oauth_token'], time() + 60 * 60 * 24 * 30);
             Typecho_Cookie::set('oauth_access_token_secret', $tok['oauth_token_secret'], time() + 60 * 60 * 24 * 30);
             $info_json = $to->OAuthRequest('https://twitter.com/account/verify_credentials.json', array(), 'GET');
             $info = Typecho_Json::decode($info_json, true);
             self::twitterLogin($info, $api);
         }
     }
 }
开发者ID:luobenyu,项目名称:plugins,代码行数:28,代码来源:Plugin.php

示例4: add_new_account

 /**
  * Used to add new record to Access Tokens Table
  *
  * @access public
  *
  * @param $oauth_verifier - $_REQUEST['code'] from controller
  * @param $profile_id
  *
  * @return string
  * @throws Exception
  */
 public function add_new_account($oauth_verifier, $profile_id)
 {
     $oauth_token = $this->_ci->session->userdata('oauth_token');
     $oauth_token_secret = $this->_ci->session->userdata('oauth_token_secret');
     $connection = new TwitterOAuth($this->_config['consumer_key'], $this->_config['consumer_secret'], $oauth_token, $oauth_token_secret);
     $token_credentials = $connection->getAccessToken($oauth_verifier);
     $tokens = array('token' => $token_credentials['oauth_token'], 'secret_token' => $token_credentials['oauth_token_secret']);
     try {
         if (empty($this->_user_id)) {
             throw new Exception("There in no active user to connect to twitter.");
         }
         $tokens['username'] = $token_credentials['screen_name'];
         $socialFullInfo = $this->get_user_full_info($tokens['username']);
         if (empty($socialFullInfo->name)) {
             throw new Exception("Invalid twitter's user data. Please try to reconnect.");
         }
         $tokens['name'] = $socialFullInfo->name;
         $tokens['image'] = $socialFullInfo->profile_image_url;
         $access_token = new Access_token();
         $token = $access_token->add_token($tokens, 'twitter', $this->_user_id);
         if (!$token->exists()) {
             throw new Exception("Cant save twitter access data. Please try to reconnect.");
         }
         $social_group = new Social_group($profile_id);
         $social_group->save(array('access_token' => $token));
     } catch (Exception $e) {
         throw $e;
     }
     $redirect_url = site_url('settings/socialmedia');
     return $redirect_url;
 }
开发者ID:andrewkrug,项目名称:repucaution,代码行数:42,代码来源:Twitter.php

示例5: authTwitter

 protected function authTwitter($save_name)
 {
     $config = $this->config;
     $conn = new TwitterOAuth($config['consumer_key'], $config['consumer_secret']);
     $request_token = $conn->getRequestToken();
     if ($request_token === false || $conn->lastStatusCode() != 200) {
         throw new RuntimeException("Error fetching Twitter auth token: Status code " . $conn->lastStatusCode() . '; ' . $conn->http_error);
     }
     $url = $conn->getAuthorizeURL($request_token);
     // Automatically send the user to the auth page.
     $ui = new UI();
     $ui->openBrowser($url);
     $pin = $ui->readline("Please visit {$url} then type the pin number: ");
     $conn = new TwitterOAuth($config['consumer_key'], $config['consumer_secret'], $request_token['oauth_token'], $request_token['oauth_token_secret']);
     $access_token = $conn->getAccessToken($pin);
     if ($access_token === false || $conn->lastStatusCode() != 200) {
         throw new RuntimeException("Error fetching Twitter access token: Status code " . $conn->lastStatusCode() . '; ' . $conn->http_error);
     }
     $this->config['oauth_token'] = $access_token['oauth_token'];
     $this->config['oauth_token_secret'] = $access_token['oauth_token_secret'];
     echo "Your Twitter token is " . $access_token['oauth_token'] . "\n";
     echo "Your Twitter token secret is " . $access_token['oauth_token_secret'] . "\n";
     echo "(Written to twitter-{$save_name}.txt)\n";
     if (file_put_contents("twitter-{$save_name}.txt", $access_token['oauth_token'] . "\n" . $access_token['oauth_token_secret'])) {
         return;
     }
     throw new RuntimeException("Failed to save oauth token to twitter-{$save_name}.txt");
 }
开发者ID:rabyunghwa,项目名称:sslscrobbler,代码行数:28,代码来源:TwitterPlugin.php

示例6: getToken

 public static function getToken($oauthToken, $oauthTokenSecret, $oauthVerifier)
 {
     list($consumerKey, $consumerSecret) = bdSocialShare_Option::getTwitterConsumerPair();
     $twitter = new TwitterOAuth($consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret);
     $token = $twitter->getAccessToken($oauthVerifier);
     return $token;
 }
开发者ID:Sywooch,项目名称:forums,代码行数:7,代码来源:Twitter.php

示例7: callback

 /**
  * Verify credentials and redirect based on response from Twitter.
  */
 public function callback()
 {
     require_once MODPATH . "twitter/vendor/twitteroauth/twitteroauth.php";
     $consumer_key = module::get_var("twitter", "consumer_key");
     $consumer_secret = module::get_var("twitter", "consumer_secret");
     $oauth_token = Session::instance()->get("twitter_oauth_token");
     $oauth_token_secret = Session::instance()->get("twitter_oauth_token_secret");
     $item_url = Session::instance()->get("twitter_item_redirect");
     // If the oauth_token is old redirect to the connect page
     if (isset($_REQUEST['oauth_token']) && $oauth_token !== $_REQUEST['oauth_token']) {
         Session::instance()->set("twitter_oauth_status", "old_token");
         $this->_clear_session();
         url::redirect(url::site("twitter/redirect"));
     }
     // Create TwitteroAuth object with app key/secret and token key/secret from default phase
     $connection = new TwitterOAuth($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);
     // Request access tokens from twitter
     $access_token = $connection->getAccessToken($_REQUEST['oauth_verifier']);
     // Save the access tokens
     Session::instance()->set("twitter_access_token", $access_token);
     // Remove no longer needed request tokens
     Session::instance()->delete("twitter_oauth_token");
     Session::instance()->delete("twitter_oauth_token_secret");
     // If HTTP response is 200 continue otherwise send to connect page to retry
     if (200 == $connection->http_code) {
         $this->_save_user($access_token);
         $item = ORM::factory("item", $item_id);
         url::redirect(url::abs_site($item_url));
     } else {
         log::error("content", "Twitter", "Unable to retrieve user access token: " . $connection->http_code);
         $this->_clear_session();
         url::redirect(url::site("twitter/redirect"));
     }
 }
开发者ID:webmatter,项目名称:gallery3-contrib,代码行数:37,代码来源:twitter.php

示例8: getMe

 /**
  * Return info about login user
  * @param $oauthToken
  * @param $oauthVerifier
  * @return \API|mixed
  * @throws Exception
  */
 public function getMe($oauthToken, $oauthVerifier)
 {
     $sessionSection = $this->session->getSection("twitter");
     if ($oauthToken != "" && $sessionSection->oauth_token !== $oauthToken) {
         //$sessionSection->oauth_status = 'oldtoken';
         throw new Exception("Twitter token is old. Try again login");
     }
     //Create TwitteroAuth object with app key/secret and token key/secret from default phase
     $this->twitterOAuth = new \TwitterOAuth($this->params["consumerKey"], $this->params["consumerSecret"], $sessionSection->oauth_token, $sessionSection->oauth_token_secret);
     //Request access tokens from twitter
     $access_token = $this->twitterOAuth->getAccessToken($oauthVerifier);
     //Save the access tokens
     $sessionSection->access_token = $access_token;
     // Remove no longer needed request tokens
     unset($sessionSection->oauth_token);
     unset($sessionSection->oauth_token_secret);
     if (200 != $this->twitterOAuth->http_code) {
         //Save HTTP status for error dialog on connnect page.
         throw new Exception("Twitter login. Something is wrong");
     }
     //The user has been verified
     //$sessionSection->status = 'verified';
     $user_info = $this->twitterOAuth->get('account/verify_credentials');
     $this->setSocialLoginCookie(self::SOCIAL_NAME);
     return $user_info;
 }
开发者ID:knedle,项目名称:social-login,代码行数:33,代码来源:TwitterLogin.php

示例9: test

 public function test()
 {
     $aModel = TuiyoLoader::model("applications", true);
     $aUser = TuiyoAPI::get("user", null);
     $aDocument = TuiyoAPI::get("document", null);
     $aParams = $aModel->getSingleUserPlugin($aUser->id, "twitter");
     if (!is_object($aParams)) {
         $aDocument->enqueMessage(_("Cannot Load the service for this user"), "error");
         return false;
     }
     echo $aParams->get("oauth_verifier");
     /* Build TwitterOAuth object with client credentials. */
     $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
     $view =& $this->getView("twitter", "html");
     /* Get temporary credentials. */
     $access_token = $connection->getAccessToken($aParams->get('oauth_verifier', false));
     /* Create a TwitterOauth object with consumer/user tokens. */
     $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token['oauth_token'], $access_token['oauth_token_secret']);
     /* If method is set change API call made. Test is called by default. */
     $content = $connection->get('account/verify_credentials');
     //print_R($content);
     $user = $connection->get('account/verify_credentials');
     $userPublicFeeds = $connection->get('statuses/public_timeline');
     print_R($userPublicFeeds);
 }
开发者ID:night-coder,项目名称:ignite,代码行数:25,代码来源:controller.php

示例10: twitter_login

 public function twitter_login()
 {
     $a = $this->session->userdata('token');
     if ($a) {
         $connection = new TwitterOAuth('NXN5bPRLh6npCLauKil2FMoq5', '4aWzIN9yuV80f16odPxkFKeWftwkvGeVjbBt9sTPYyfCaUb4sf', $this->session->userdata('token'), $this->session->userdata('token_secret'));
         if (!empty($_REQUEST['oauth_verifier'])) {
             $oauth_verifier = $_REQUEST['oauth_verifier'];
         } else {
             redirect('auth/log_out');
         }
         $access_token = $connection->getAccessToken($oauth_verifier);
         $data = array('id' => $access_token['user_id'], 'first_name' => $access_token['screen_name'], 'last_name' => $access_token['screen_name'], 'isLogged' => TRUE, 'role' => 0);
         $this->session->set_userdata($data);
         $twiter_users = $this->users_model->get_record_by_filed(array('id' => $access_token['user_id']));
         if (count($twiter_users) == 0) {
             $last_id = $this->users_model->insert_data($data);
         } else {
             $last_id = $this->users_model->get_record(array('id' => $access_token['user_id']));
             $this->users_model->update_record($last_id->id, $data);
         }
         redirect('frontend/home');
     } else {
         $connection = new TwitterOAuth('NXN5bPRLh6npCLauKil2FMoq5', '4aWzIN9yuV80f16odPxkFKeWftwkvGeVjbBt9sTPYyfCaUb4sf');
         $request_token = $connection->getRequestToken('http://shop.loc/auth/twitter_login');
         $data = array('token' => $request_token['oauth_token'], 'token_secret' => $request_token['oauth_token_secret']);
         $this->session->set_userdata($data);
         if ($connection->http_code == '200') {
             $twitter_url = $connection->getAuthorizeURL($request_token['oauth_token']);
             header('Location: ' . $twitter_url);
         } else {
             die("error connecting to twitter! try again later!");
         }
     }
 }
开发者ID:jelek92,项目名称:Store,代码行数:34,代码来源:Auth.php

示例11: index

 function index()
 {
     require APPPATH . 'modules/twitter/libraries/twitteroauth.php';
     /* If the oauth_token is old redirect to the connect page. */
     if ($this->input->get('oauth_token') && $this->session->userdata('twitter_oauth_token') !== $this->input->get('oauth_token')) {
         return redirect('admincp/twitter');
     }
     /* Create TwitteroAuth object with app key/secret and token key/secret from default phase */
     $connection = new TwitterOAuth(setting('twitter_consumer_key'), setting('twitter_consumer_secret'), $this->session->userdata('twitter_oauth_token'), $this->session->userdata('twitter_oauth_token_secret'));
     /* Request access tokens from twitter */
     $access_token = $connection->getAccessToken($this->input->get('oauth_verifier'));
     /* Save the access tokens. Normally these would be saved in a database for future use. */
     $this->settings_model->update_setting('twitter_oauth_token', $access_token['oauth_token']);
     $this->settings_model->update_setting('twitter_oauth_token_secret', $access_token['oauth_token_secret']);
     /* Remove no longer needed request tokens */
     $this->session->unset_userdata('twitter_oauth_token');
     $this->session->unset_userdata('twitter_oauth_token_secret');
     /* If HTTP response is 200 continue otherwise send to connect page to retry */
     if (200 == $connection->http_code) {
         $this->notices->SetNotice('OAuthorization retrieved successfully.');
         return redirect('admincp/twitter');
     } else {
         $this->notices->SetError('Error making connection in OAuth callback.');
         return redirect('admincp/twitter');
     }
 }
开发者ID:josev814,项目名称:hero,代码行数:26,代码来源:oauth_callback.php

示例12: twittercallback

function twittercallback()
{
    $twitter = new TwitterOAuth(TWITTER_APIKEY, TWITTER_APISECRET, $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);
    $token = $twitter->getAccessToken($_REQUEST['oauth_verifier']);
    $account = $twitter->get('account/verify_credentials');
    header('Location: ' . BASE_URL . 'connect/add/twitter/' . base64_encode($token['user_id']) . '/' . base64_encode($token['screen_name']) . '/' . base64_encode($token['oauth_token']) . '/' . base64_encode($token['oauth_token_secret']) . '/' . base64_encode($account->profile_image_url_https));
    exit;
}
开发者ID:anantgarg,项目名称:kudos,代码行数:8,代码来源:connect.php

示例13: callbackAction

 public function callbackAction(Request $request)
 {
     /****Check language session*******/
     $session = $request->getSession();
     $this->langsession($session);
     $lan = $session->get('language');
     $request->setLocale($lan);
     $username = $session->get('user');
     $em = $this->getDoctrine()->getManager();
     $appkey = $this->container->get('mytrip_admin.helper.twitter')->getOption('apikey');
     $appsecretkey = $this->container->get('mytrip_admin.helper.twitter')->getOption('apisecretkey');
     $twitteroauth = new \TwitterOAuth($appkey, $appsecretkey, $session->get('oauth_token'), $session->get('oauth_token_secret'));
     //\TwitterOAuth::setAuth($appkey, $appsecretkey,$session->get('oauth_token'), $session->get('oauth_token_secret'));
     $access_token = $twitteroauth->getAccessToken($_REQUEST['oauth_verifier']);
     $content = $twitteroauth->get('account/verify_credentials');
     if (!empty($content)) {
         if (!empty($username)) {
             $uid = $username['userId'];
             $check_social_link = $em->createQuery("SELECT p FROM MytripAdminBundle:UserSocialLink p WHERE p.user='" . $uid . "' AND p.socialLink='Twitter' AND p.id='" . $content->id . "'")->getArrayResult();
             if (empty($check_social_link)) {
                 $social_links = new \Mytrip\AdminBundle\Entity\UserSocialLink();
                 $social_links->setUser($this->getDoctrine()->getRepository('MytripAdminBundle:User')->find($uid));
                 $social_links->setSocialLink('Twitter');
                 $social_links->setId($content->id);
                 $social_links->setImage($content->profile_image_url);
                 $social_links->setCreatedDate(new \DateTime(date('Y-m-d H:i:s')));
                 $em->persist($social_links);
                 $em->flush();
             }
             return $this->redirect($this->generateUrl('mytrip_user_profile'));
         } else {
             $check_social_link = $em->createQuery("SELECT p,IDENTITY(p.user) AS user FROM MytripAdminBundle:UserSocialLink p WHERE p.socialLink='Twitter' AND p.id='" . $content->id . "'")->getArrayResult();
             if (!empty($check_social_link)) {
                 $user = $em->createQuery("SELECT p FROM MytripAdminBundle:User p WHERE p.userId='" . $check_social_link[0]['user'] . "' AND p.status NOT IN ('Trash')")->getArrayResult();
                 if (!empty($user)) {
                     $session->set('user', $user[0]);
                     $session->set('UserLogin', "True");
                     return $this->redirect($this->generateUrl('mytrip_user_profile'));
                 } else {
                     $session->set('twittercontent', $content);
                     $this->get('session')->getFlashBag()->add('twit', '1');
                     return $this->redirect($this->generateUrl('mytrip_user_homepage'));
                 }
             } else {
                 $session->set('twittercontent', $content);
                 $this->get('session')->getFlashBag()->add('twit', '1');
                 return $this->redirect($this->generateUrl('mytrip_user_homepage'));
             }
         }
     } else {
         $this->get('session')->getFlashBag()->add('success', $this->get('translator')->trans('Sorry, Please try again'));
         if (empty($username)) {
             return $this->redirect($this->generateUrl('mytrip_user_homepage'));
         } else {
             return $this->redirect($this->generateUrl('mytrip_user_profile'));
         }
     }
 }
开发者ID:sanchojaf,项目名称:oldmytriptocuba,代码行数:58,代码来源:TwittersController.php

示例14: processAuth

 /**
  * This method is used to process the second part of authentication workflow, after redirect
  *
  * @return array Array with status and user details
  */
 public function processAuth()
 {
     $ngConnectINI = eZINI::instance('ngconnect.ini');
     $http = eZHTTPTool::instance();
     $consumerKey = trim($ngConnectINI->variable('LoginMethod_twitter', 'AppConsumerKey'));
     $consumerSecret = trim($ngConnectINI->variable('LoginMethod_twitter', 'AppConsumerSecret'));
     if (empty($consumerKey) || empty($consumerSecret)) {
         return array('status' => 'error', 'message' => 'Consumer key or consumer secret undefined.');
     }
     $oAuthToken = trim($http->getVariable('oauth_token', ''));
     $oAuthVerifier = trim($http->getVariable('oauth_verifier', ''));
     $state = trim($http->getVariable('state', ''));
     if (empty($oAuthToken) || empty($oAuthVerifier) || empty($state)) {
         return array('status' => 'error', 'message' => 'oauth_token, oauth_verifier or state GET parameters undefined.');
     }
     if (!$http->hasSessionVariable('NGConnectOAuthState') || $state != $http->sessionVariable('NGConnectOAuthState')) {
         $http->removeSessionVariable('NGConnectOAuthState');
         return array('status' => 'error', 'message' => 'State parameter does not match stored value.');
     } else {
         $http->removeSessionVariable('NGConnectOAuthState');
     }
     if (!$http->hasSessionVariable('NGConnectOAuthToken') || !$http->hasSessionVariable('NGConnectOAuthTokenSecret') || $oAuthToken != $http->sessionVariable('NGConnectOAuthToken')) {
         $http->removeSessionVariable('NGConnectOAuthToken');
         $http->removeSessionVariable('NGConnectOAuthTokenSecret');
         return array('status' => 'error', 'message' => 'Token does not match stored value.');
     } else {
         $oAuthTokenSecret = $http->sessionVariable('NGConnectOAuthTokenSecret');
         $http->removeSessionVariable('NGConnectOAuthToken');
         $http->removeSessionVariable('NGConnectOAuthTokenSecret');
     }
     $connection = new TwitterOAuth($consumerKey, $consumerSecret, $oAuthToken, $oAuthTokenSecret);
     $connection->host = self::TWITTER_API_URI;
     $accessToken = $connection->getAccessToken($oAuthVerifier);
     if (!(isset($accessToken['oauth_token']) && isset($accessToken['oauth_token_secret']))) {
         return array('status' => 'error', 'message' => 'Error while retrieving access token.');
     }
     $connection = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken['oauth_token'], $accessToken['oauth_token_secret']);
     $connection->host = self::TWITTER_API_URI;
     $user = $connection->get(self::TWITTER_USER_API_URI);
     if (!isset($user->id) || empty($user->id)) {
         return array('status' => 'error', 'message' => 'Invalid Twitter user.');
     }
     if (isset($user->profile_image_url) && !empty($user->profile_image_url)) {
         $pictureUri = $user->profile_image_url;
         $imageSize = trim($ngConnectINI->variable('LoginMethod_twitter', 'ImageSize'));
         if ($imageSize == 'original') {
             //Hm... it seems there's no way to get the full size image through API
             //Even https://api.twitter.com/1/users/profile_image/username never returns full version
             //Replacing is not safe, but at least we're replacing last occurrence
             $pictureUri = substr_replace($user->profile_image_url, '', strrpos($user->profile_image_url, '_normal'), 7);
         }
     } else {
         $pictureUri = '';
     }
     $result = array('status' => 'success', 'login_method' => 'twitter', 'id' => $user->id, 'first_name' => isset($user->name) ? $user->name : '', 'last_name' => '', 'email' => '', 'picture' => $pictureUri);
     return $result;
 }
开发者ID:netgen,项目名称:ngconnect,代码行数:62,代码来源:ngconnectauthtwitter.php

示例15: action_twittercallback

 public function action_twittercallback()
 {
     if (arr::get($_GET, 'denied', false)) {
         notes::error('Seems like you didn\'t want to log in with Twitter anyway. Feel free to try again if it was a mistake!');
         site::redirect();
     }
     $token = arr::get($_GET, 'oauth_token', false);
     $verifier = arr::get($_GET, 'oauth_verifier', false);
     if (!$token || !$verifier) {
         notes::error('Something went wrong in the process, and we didn\'t get the expected data back from Twitter. Please try again');
         site::redirect();
     }
     $connection = new TwitterOAuth(arr::get($this->creds, 'key'), arr::get($this->creds, 'secret'), Session::instance()->get_once('twitter_oauth_token'), Session::instance()->get_once('twitter_oauth_token_secret'));
     $token = $connection->getAccessToken($verifier);
     $oauth_token = arr::get($token, 'oauth_token', '');
     $oauth_token_secret = arr::get($token, 'oauth_token_secret', '');
     $user_id = arr::get($token, 'user_id', '');
     $screen_name = arr::get($token, 'screen_name', '');
     $oauth = ORM::factory('Oauth')->where('type', '=', 'twitter')->where('token', '=', $oauth_token)->find();
     if ($oauth->loaded()) {
         try {
             $user = $oauth->user;
             user::force_login($user);
         } catch (exception $e) {
             if ($user->loaded()) {
                 if (user::logged()) {
                     // Random error, but user got logged in. We don't care, YOLO!
                 } else {
                     notes::error('Whoops! Something wen\'t wrong and we couldn\'t log you in. Please try again or send us a message if the problem persists.');
                     Kohana::$log->add(Log::ERROR, '1. Couldnt log user in: ' . $e->getMessage());
                 }
             }
         }
         site::redirect('write');
     } else {
         try {
             $user = ORM::factory('User');
             $user->username = $screen_name;
             $user->validation_required(false)->save();
             $user->add_role('login');
             $oauth = ORM::factory('Oauth');
             $oauth->user_id = $user->id;
             $oauth->type = 'twitter';
             $oauth->token = $oauth_token;
             $oauth->token_secret = $oauth_token_secret;
             $oauth->service_id = $user_id;
             $oauth->screen_name = $screen_name;
             $oauth->save();
             user::force_login($user);
         } catch (exception $e) {
             Kohana::$log->add(Log::ERROR, '2. Couldnt create user: ' . $e->getMessage());
             notes::error('Whoops! Something wen\'t wrong and we couldn\'t log you in. Please try again or send us a message if the problem persists.');
         }
         site::redirect('/write');
     }
 }
开发者ID:artbypravesh,项目名称:morningpages,代码行数:56,代码来源:Auth.php


注:本文中的TwitterOAuth::getAccessToken方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。