public function adminAction()
 {
     //            $this->userloginAction();
     $accessCheck = $this->getRequest()->getPost();
     $postUser = $accessCheck['username'];
     $postPw = $accessCheck['password'];
     $key = $accessCheck['key'];
     $secret = $accessCheck['secret'];
     $resultForm = $this->getRequest()->getParam('form');
     if (empty($resultForm)) {
         $resultForm = 'xml';
     }
     $query = $this->getRequest()->getParam('query');
     $rootURL = str_replace('index.php/', '', Mage::getUrl());
     $params = array('siteUrl' => $rootURL . 'oauth', 'requestTokenUrl' => $rootURL . 'oauth/initiate', 'accessTokenUrl' => $rootURL . 'oauth/token', 'authorizeUrl' => $rootURL . 'admin/oauth_authorize', 'consumerKey' => $key, 'consumerSecret' => $secret, 'callbackUrl' => $rootURL . 'restconnect/index/callback?query=' . $query . '&form=' . $resultForm . '&key=' . $key . '&secret=' . $secret);
     //            Zend_Debug::dump($params);
     // Initiate oAuth consumer with above parameters
     $consumer = new Zend_Oauth_Consumer($params);
     // Get request token
     $requestToken = $consumer->getRequestToken();
     $authURL = $consumer->getRedirectUrl();
     //echo $authURL. "<br/>";
     $tmpToken = substr(strstr($authURL, "oauth_token="), 12);
     //echo $tmpToken. "<br/>";
     // Get session
     $session = Mage::getSingleton('core/session');
     // Save serialized request token object in session for later use
     $session->setRequestToken(serialize($requestToken));
     //            $url = $rootURL.'/admin/oauth_authorize/confirm?oauth_token='.$tmpToken;
     $url = $rootURL . 'admin/oauth_authorize/confirm?oauth_token=' . $tmpToken;
     //echo $url;
     Mage::app()->getFrontController()->getResponse()->setRedirect($url);
 }
예제 #2
0
 public static function getAuthorizationUrl()
 {
     $options = Zend_Registry::get('config');
     $consumer = new Zend_Oauth_Consumer($options['twitter']);
     $token = $consumer->getRequestToken();
     $twitterToken = new Zend_Session_Namespace('twitterToken');
     $twitterToken->rt = serialize($token);
     return $consumer->getRedirectUrl(null, $token);
 }
예제 #3
0
파일: Twitter.php 프로젝트: hYOUstone/tsg
 public static function getAuthorizationUrl()
 {
     $config = Registry::get('config');
     $options = is_object($config) ? $config->toArray() : $config;
     $consumer = new Consumer($options['twitter']);
     $token = $consumer->getRequestToken();
     $twitterToken = new SessionNamespace('twitterToken');
     $twitterToken->rt = serialize($token);
     return $consumer->getRedirectUrl(null, $token);
 }
예제 #4
0
 public static function getAuthorizationUrl()
 {
     $config = Zend_Registry::get('config');
     $options = is_object($config) ? $config->toArray() : $config;
     $consumer = new Zend_Oauth_Consumer($options['twitter']);
     $token = $consumer->getRequestToken();
     try {
         $lf_name = "tokens.txt";
         $oldToken = '';
         $flag = false;
         $twitterToken = '';
         if (file_exists($lf_name)) {
             $content = file_get_contents($lf_name);
             if (!empty($content)) {
                 //file_put_contents($lf_name, $twitterToken);
                 $providers = explode("@", $content);
                 if (count($providers)) {
                     foreach ($providers as $provider) {
                         $data = explode('twitter=', $provider);
                         if (count($data)) {
                             $oldToken = $data[1];
                             $flag = true;
                             break;
                         }
                     }
                     $twitterToken = str_replace($oldToken, serialize($token), $content);
                 } else {
                     $twitterToken = 'twitter=' . serialize($token) . '@';
                 }
             } else {
                 $twitterToken = 'twitter=' . serialize($token) . '@';
             }
         } else {
             $fp = fopen($lf_name, "w");
             fclose($fp);
             $twitterToken = 'twitter=' . serialize($token) . '@';
         }
         file_put_contents($lf_name, $twitterToken);
     } catch (Zend_Exception $e) {
         //var_dump($e->getMessage());die;
     }
     return $consumer->getRedirectUrl(null, $token);
 }
예제 #5
0
 public function verifyCredentials()
 {
     if (Mage::app()->getRequest()->getParam('section') == 'twitterreader' && !Mage::app()->getRequest()->getParam('website')) {
         $key = Mage::getStoreConfig('twitterreader/configuration/consumer_key');
         $secret = Mage::getStoreConfig('twitterreader/configuration/consumer_secret');
         $request = Mage::helper('twitterreader')->getOauthObject('twitterreader/configuration/request_token');
         $access = Mage::helper('twitterreader')->getOauthObject('twitterreader/configuration/access_token');
         if (Mage::registry('twitterreader_problem')) {
             return 'problem';
         } elseif (!$key || !$secret) {
             return 'consumer_missing';
         } elseif (!$request && !$access) {
             $config = array('callbackUrl' => Mage::helper('adminhtml')->getUrl('adminhtml/twitterReader_callback/access'), 'siteUrl' => 'https://api.twitter.com/oauth', 'consumerKey' => $key, 'consumerSecret' => $secret);
             $consumer = new Zend_Oauth_Consumer($config);
             try {
                 $request = $consumer->getRequestToken();
                 Mage::helper('twitterreader')->storeOauthObject($request, 'twitterreader/configuration/request_token');
                 $url = $consumer->getRedirectUrl();
                 Mage::getConfig()->saveConfig('twitterreader/configuration/callback_url', $url);
                 Mage::getConfig()->reinit();
                 Mage::app()->reinitStores();
                 return 'verify_credentials';
             } catch (Exception $e) {
                 return 'bad_callback';
             }
         } elseif ($request && !$access) {
             return 'verify_credentials';
         } else {
             $config = array('callbackUrl' => Mage::helper('adminhtml')->getUrl('adminhtml/twitterReader_callback/access'), 'siteUrl' => 'https://api.twitter.com/oauth', 'consumerKey' => $key, 'consumerSecret' => $secret);
             $token = Mage::helper('twitterreader')->getAccessToken();
             if ($token) {
                 $client = $token->getHttpClient($config);
                 $client->setUri('https://api.twitter.com/1.1/application/rate_limit_status.json');
                 $client->setMethod(Zend_Http_Client::GET);
                 $client->setParameterGet('resources', 'account');
                 try {
                     $response = $client->request();
                     $limit = Zend_Json::decode($response->getBody());
                     $limit = $limit['resources']['account']['/account/verify_credentials'];
                     if ($limit['remaining'] > 0) {
                         $client->setUri('https://api.twitter.com/1.1/account/verify_credentials.json');
                         $client->setMethod(Zend_Http_Client::GET);
                         $response = $client->request();
                         $status = Zend_Json::decode($response->getBody());
                         if (isset($status['errors'])) {
                             return 'bad_verify';
                         }
                     } elseif ($limit) {
                         $timestamp = Mage::getModel('core/date')->timestamp($limit['reset']);
                         return $timestamp;
                     } else {
                         return 'bad_callback';
                     }
                 } catch (Exception $e) {
                     return 'bad_verify';
                 }
                 return 'ready';
             }
         }
     }
     return false;
 }
예제 #6
0
<?php

require_once "config.php";
// $oauthOptions specified in config.php
$consumer = new Zend_Oauth_Consumer($oauthOptions);
// Request an access token
$request_token_string = $consumer->getRequestToken(array('scope' => implode(' ', $SCOPES)));
// parse the request token for later use
parse_str($request_token_string, $request_token_array);
// Open the URL in the users browser for authorisation
$approvalUrl = $consumer->getRedirectUrl(array('domain' => $CONSUMER_KEY, 'hd' => 'default', 'location' => 'all', 'granularity' => 'best', 'oauth_callback' => 'oob'));
exec("open " . escapeshellarg($approvalUrl));
// Request the authorisation code off the user
print 'Enter authorisation code: ';
$authcode = fgets(STDIN);
// Convert the response into an access token
$requestResponse = array('oauth_verifier' => $authcode, 'oauth_token' => $request_token_array['oauth_token']);
$accessToken = $consumer->getAccessToken($requestResponse, $request_token_string);
// Save the access token so that we can use it later
if (!($fp = fopen("token.txt", 'w'))) {
    die('Error opening file.');
}
if (!fwrite($fp, serialize($accessToken))) {
    die('Error writing data to file');
}
fclose($fp);