コード例 #1
0
ファイル: voota_api.class.php プロジェクト: voota/voota
 /**
  * Authenticate - Asks permission to a user to authorize the application
  *
  * @param string $consumerKey Access key 
  * @param string $secretKey Secret key
  * @param integer $userId A user identificator
  * @param string $callbackUri This url will be called to finish authorization
  * @return void
  */
 public function authenticate($consumerKey, $consumerSecret, $userId, $callbackUri)
 {
     // Save the server in the the OAuthStore
     $store = OAuthStore::instance();
     try {
         // Create the server
         $server = array('consumer_key' => $consumerKey, 'consumer_secret' => $consumerSecret, 'server_uri' => $this->serverUrl . '/a1/', 'signature_methods' => array('HMAC-SHA1', 'PLAINTEXT'), 'request_token_uri' => $this->serverUrl . '/oauth/request_token', 'authorize_uri' => $this->serverUrl . '/oauth/authorize', 'access_token_uri' => $this->serverUrl . '/oauth/access_token');
         $consumer_key = $store->updateServer($server, $userId);
     } catch (Exception $e) {
         //throw new BadRequestException($e->getMessage());
     }
     $token = OAuthRequester::requestRequestToken($consumerKey, $userId);
     // Callback to our (consumer) site, will be called when the user finished the authorization at the server
     $callback_uri = "{$callbackUri}?consumer_key=" . rawurlencode($consumerKey) . '&usr_id=' . intval($userId);
     // Now redirect to the autorization uri and get us authorized
     if (!empty($token['authorize_uri'])) {
         // Redirect to the server, add a callback to our server
         if (strpos($token['authorize_uri'], '?')) {
             $uri = $token['authorize_uri'] . '&';
         } else {
             $uri = $token['authorize_uri'] . '?';
         }
         $uri .= 'oauth_token=' . rawurlencode($token['token']) . '&oauth_callback=' . rawurlencode($callback_uri);
     } else {
         // No authorization uri, assume we are authorized, exchange request token for access token
         $uri = $callback_uri . '&oauth_token=' . rawurlencode($token['token']);
     }
     Header("Location: {$uri}");
     die;
 }
コード例 #2
0
ファイル: TestController.php プロジェクト: henvic/MediaLab
 public function requestapiauthAction()
 {
     $service = new Ml_Model_Service();
     $userId = $service->getInput("User ID");
     $consumerKey = $service->getInput("Consumer key");
     $this->_helper->loadOauthstore->setinstance();
     require EXTERNAL_LIBRARY_PATH . '/oauth-php/library/OAuthRequester.php';
     $token = OAuthRequester::requestRequestToken($consumerKey, $userId);
     // Callback to our (consumer) site
     //it's called when the user finished the authorization at the server
     $callbackUri = 'http://example.com/callback?consumer_key=' . rawurlencode($consumerKey) . '&usr_id=' . intval($userId);
     // Now redirect to the autorization uri and get us authorized
     if (!empty($token['authorize_uri'])) {
         // Redirect to the server, add a callback to our server
         if (strpos($token['authorize_uri'], '?')) {
             $uri = $token['authorize_uri'] . '&';
         } else {
             $uri = $token['authorize_uri'] . '?';
         }
         $uri .= 'oauth_token=' . rawurlencode($token['token']) . '&oauth_callback=' . rawurlencode($callbackUri);
     } else {
         // No authorization uri
         //assume we are authorized
         //exchange request token for access token
         $uri = $callbackUri . '&oauth_token=' . rawurlencode($token['token']);
     }
     echo $uri;
     //exit();
 }
コード例 #3
0
function getResponseAPI($userIdZyncro, $sessionid, $serviceAPI)
{
    // Init the OAuthStore
    $options = array('consumer_key' => CONSUMER_KEY, 'consumer_secret' => CONSUMER_SECRET, 'server_uri' => OAUTH_HOST, 'request_token_uri' => REQUEST_TOKEN_URL, 'signature_methods' => array('HMAC-SHA1'), 'authorize_uri' => AUTHORIZE_URL, 'access_token_uri' => ACCESS_TOKEN_URL);
    // Note: do not use "Session" storage in production. Prefer a database
    // storage, such as MySQL.
    OAuthStore::instance("Session", $options);
    try {
        // get a request token
        $getRequestTokenParams = array();
        $tokenResultParams = OAuthRequester::requestRequestToken(CONSUMER_KEY, 0, $getRequestTokenParams, 'GET');
        // get an access token
        $oauthToken = $tokenResultParams['token'];
        $getAccessTokenParams = array('oauth_verifier' => $sessionid);
        OAuthRequester::requestAccessToken(CONSUMER_KEY, $oauthToken, 0, 'POST', $getAccessTokenParams);
        // make the request.
        $urlRequest = OAUTH_HOST . $serviceAPI;
        $request = new OAuthRequester($urlRequest, 'GET');
        $result = $request->doRequest(0);
        if ($result['code'] == 200) {
            return $result['body'];
        }
    } catch (OAuthException2 $e) {
    }
}
コード例 #4
0
ファイル: douban_oauth.php プロジェクト: reusee/defphp
function douban_login()
{
    define('BASEURL', 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/');
    $options = array('oauth_as_header' => false);
    $tokenResultParams = OAuthRequester::requestRequestToken(DOUBAN_KEY, 0, array(), 'POST', $options);
    $_SESSION['oauth_token'] = $tokenResultParams['token'];
    context('redirect', DOUBAN_AUTHORIZE_URL . '?oauth_token=' . $tokenResultParams['token'] . '&oauth_callback=' . BASEURL . 'index.php?q=douban_oauth_callback');
}
コード例 #5
0
 public static function getAuthURL($consumer_key, $consumer_secret, $store = "MySQL", $user_id = 1, $callback = null, $extra_options = array())
 {
     // Return the authorization URL. Redirect the header to this location.
     OAuthClient::storeInstance(OAuthClient::merge_options($consumer_key, $consumer_secret, $extra_options), $store);
     $getAuthTokenParams = array('scope' => SCOPE, 'oauth_callback' => $callback);
     $tokenResultParams = OAuthRequester::requestRequestToken($consumer_key, $user_id, $getAuthTokenParams);
     return "Location: " . GOOGLE_OAUTH_AUTHORIZE_API . "?oauth_token=" . $tokenResultParams['token'] . "&scope=" . $getAuthTokenParams['scope'] . "&domain=" . $consumer_key;
 }
コード例 #6
0
ファイル: OAuthPHPLib.php プロジェクト: e2e4gu/php-upwork
 /**
  * Get and setup request token
  *
  * @access  public
  * @return  array
  */
 public function setupRequestToken()
 {
     ApiDebug::p('query request token from server');
     $oauth = $this->_getOAuthInstance();
     $requestTokenInfo = \OAuthRequester::requestRequestToken(self::$_apiKey, 0, array(), 'POST', array(), self::_getCurlOptions());
     // add token_secret to response
     $requestTokenInfo['token_secret'] = $_SESSION['oauth_' . self::$_apiKey]['token_secret'];
     ApiDebug::p('got request token info', $requestTokenInfo);
     self::$_requestToken = $requestTokenInfo['token'];
     self::$_requestSecret = $requestTokenInfo['token_secret'];
     return array('oauth_token' => $requestTokenInfo['token'], 'oauth_token_secret' => $requestTokenInfo['token_secret']);
 }
コード例 #7
0
ファイル: _login.php プロジェクト: jasonhai/onehome
     if (isset($_GET['error']) && !isset($_POST['email'])) {
         echo '<pre>';
         print_r($_GET['error']);
         echo '</pre>';
         exit;
     }
     //in case of submit login form
     if (!empty($_POST['email']) && !empty($_POST['password'])) {
         //                $email = '*****@*****.**';
         //                $password = '******';
         $email = trim($_POST['email']);
         $password = trim($_POST['password']);
         $signature = SFSignature::genSignature($email, $password);
         $getAuthTokenParams = array('xoauth_displayname' => 'Oauth test', 'oauth_callback' => SITE_URL . '/login.php');
         // get a request token
         $tokenResultParams = OAuthRequester::requestRequestToken(SFDOCTOR_CONSUMER_KEY, 0, $getAuthTokenParams);
         //  redirect to the 65doctor authorization page, they will redirect back
         header("Location: " . SFDOCTOR_AUTHORIZE_URL . "?oauth_token=" . $tokenResultParams['token'] . $signature);
     } else {
         echo '<pre>';
         print_r('Missing username or password.');
         echo '</pre>';
         exit;
     }
 } else {
     //  STEP 2:  Get an access token
     $oauthToken = $_GET["oauth_token"];
     // echo "oauth_verifier = '" . $oauthVerifier . "'<br/>";
     $tokenResultParams = $_GET;
     try {
         OAuthRequester::requestAccessToken(SFDOCTOR_CONSUMER_KEY, $oauthToken, 0, 'POST', $_GET);
コード例 #8
0
ファイル: googledocs.php プロジェクト: cybKIRA/oauth-php
define("GOOGLE_OAUTH_HOST", "https://www.google.com");
define("GOOGLE_REQUEST_TOKEN_URL", GOOGLE_OAUTH_HOST . "/accounts/OAuthGetRequestToken");
define("GOOGLE_AUTHORIZE_URL", GOOGLE_OAUTH_HOST . "/accounts/OAuthAuthorizeToken");
define("GOOGLE_ACCESS_TOKEN_URL", GOOGLE_OAUTH_HOST . "/accounts/OAuthGetAccessToken");
define('OAUTH_TMP_DIR', function_exists('sys_get_temp_dir') ? sys_get_temp_dir() : realpath($_ENV["TMP"]));
//  Init the OAuthStore
$options = array('consumer_key' => GOOGLE_CONSUMER_KEY, 'consumer_secret' => GOOGLE_CONSUMER_SECRET, 'server_uri' => GOOGLE_OAUTH_HOST, 'request_token_uri' => GOOGLE_REQUEST_TOKEN_URL, 'authorize_uri' => GOOGLE_AUTHORIZE_URL, 'access_token_uri' => GOOGLE_ACCESS_TOKEN_URL);
// Note: do not use "Session" storage in production. Prefer a database
// storage, such as MySQL.
OAuthStore::instance("Session", $options);
try {
    //  STEP 1:  If we do not have an OAuth token yet, go get one
    if (empty($_GET["oauth_token"])) {
        $getAuthTokenParams = array('scope' => 'http://docs.google.com/feeds/', 'xoauth_displayname' => 'Oauth test', 'oauth_callback' => 'XXXXXXXXXXX');
        // get a request token
        $tokenResultParams = OAuthRequester::requestRequestToken(GOOGLE_CONSUMER_KEY, 0, $getAuthTokenParams);
        //  redirect to the google authorization page, they will redirect back
        header("Location: " . GOOGLE_AUTHORIZE_URL . "?btmpl=mobile&oauth_token=" . $tokenResultParams['token']);
    } else {
        //  STEP 2:  Get an access token
        $oauthToken = $_GET["oauth_token"];
        // echo "oauth_verifier = '" . $oauthVerifier . "'<br/>";
        $tokenResultParams = $_GET;
        try {
            OAuthRequester::requestAccessToken(GOOGLE_CONSUMER_KEY, $oauthToken, 0, 'POST', $_GET);
        } catch (OAuthException2 $e) {
            var_dump($e);
            // Something wrong with the oauth_token.
            // Could be:
            // 1. Was already ok
            // 2. We were not authorized
コード例 #9
0
ファイル: OAuthModule.php プロジェクト: russelldavis/UserBase
 protected function startOAuthFlow()
 {
     // generate new user id since we're logging in and have no idea who the user is
     $oauth_user_id = $this->getNewOAuthUserID();
     $storage = new MrClay_CookieStorage(array('secret' => UserConfig::$SESSION_SECRET, 'mode' => MrClay_CookieStorage::MODE_ENCRYPT, 'path' => UserConfig::$SITEROOTURL, 'httponly' => true));
     if (!$storage->store(UserConfig::$oauth_user_id_key, $oauth_user_id)) {
         throw new Exception(implode('; ', $storage->errors));
     }
     try {
         $callback = UserConfig::$USERSROOTFULLURL . '/oauth_callback.php?module=' . $this->getID();
         // TODO add a way to skip this step if server was initialized
         $this->initOAuthServer();
         $params = array('scope' => $this->oAuthScope, 'oauth_callback' => $callback);
         if (!is_null(UserConfig::$OAuthAppName)) {
             $params['xoauth_displayname'] = UserConfig::$OAuthAppName;
         }
         // STEP 1: get a request token
         $tokenResultParams = OAuthRequester::requestRequestToken($this->oAuthConsumerKey, $oauth_user_id, $params);
         //  redirect to the authorization page, they will redirect back
         header("Location: " . $this->oAuthAuthorizeURL . "?oauth_token=" . $tokenResultParams['token']);
         exit;
     } catch (OAuthException2 $e) {
         error_log(var_export($e, true));
         return null;
     }
 }
コード例 #10
0
ファイル: opera.php プロジェクト: khosro/oauth-php
define("OPERA_ACCESS_TOKEN_URL", "https://auth.opera.com/service/oauth/access_token");
define('OAUTH_TMP_DIR', function_exists('sys_get_temp_dir') ? sys_get_temp_dir() : realpath($_ENV["TMP"]));
// Start the session
session_start();
//  Init the OAuthStore
$options = array('consumer_key' => OPERA_CONSUMER_KEY, 'consumer_secret' => OPERA_CONSUMER_SECRET, 'server_uri' => 'http://my.opera.com/community/api/', 'request_token_uri' => OPERA_REQUEST_TOKEN_URL, 'authorize_uri' => OPERA_AUTHORIZE_URL, 'access_token_uri' => OPERA_ACCESS_TOKEN_URL);
// Note: do not use "Session" storage in production. Prefer a database
// storage, such as MySQL.
OAuthStore::instance("Session", $options);
try {
    //  STEP 1:  If we do not have an OAuth token yet, go get one
    if (empty($_GET["oauth_verifier"])) {
        $getAuthTokenParams = array('oauth_callback' => 'oob');
        $options = array('oauth_as_header' => false);
        // get a request token
        $tokenResultParams = OAuthRequester::requestRequestToken(OPERA_CONSUMER_KEY, 0, $getAuthTokenParams, 'POST', $options);
        $_SESSION['oauth_token'] = $tokenResultParams['token'];
        //  redirect to the opera authorization page, they will redirect back
        header("Location: " . OPERA_AUTHORIZE_URL . "?oauth_token=" . $tokenResultParams['token']);
    } else {
        //  STEP 2:  Get an access token
        try {
            OAuthRequester::requestAccessToken(OPERA_CONSUMER_KEY, $_SESSION['oauth_token'], 0, 'POST', $options = array('oauth_verifier' => $_GET['oauth_verifier']));
        } catch (OAuthException2 $e) {
            var_dump($e);
            // Something wrong with the oauth_token.
            // Could be:
            // 1. Was already ok
            // 2. We were not authorized
            return;
        }
コード例 #11
0
ファイル: register.php プロジェクト: ntulip/TwitApps
<?php

require dirname(__FILE__) . '/fx.php';
// Obtain a request token from the server
$token = OAuthRequester::requestRequestToken($server['consumer_key'], $user_id);
// Now redirect to the autorization uri and get us authorized
if (!empty($token['authorize_uri'])) {
    // Redirect to the server, add a callback to our server
    if (strpos($token['authorize_uri'], '?')) {
        $uri = $token['authorize_uri'] . '&';
    } else {
        $uri = $token['authorize_uri'] . '?';
    }
    $uri .= 'oauth_token=' . rawurlencode($token['token']);
} else {
    // No authorization uri, assume we are authorized, exchange request token for access token
    $uri = '/follows/manage/oacb?oauth_token=' . rawurlencode($token['token']);
}
header('Location: ' . $uri);
コード例 #12
0
<?php

/*
 * We will now request a token from splitwise 
 * this is when we will be sending the client to splitwise to authenticate the application you registered.
 * 
 */
require "oauth/OAuthStore.php";
require "oauth/OAuthRequester.php";
require "config.php";
// Obtain a request token from splitwises' servers
try {
    $token = OAuthRequester::requestRequestToken($key, $user_id, array('oauth_callback' => $callback_URL));
    $uri = $token['authorize_uri'] . '?oauth_token=' . rawurlencode($token['token']);
    header('Location: ' . $uri);
} catch (OAuthException2 $e) {
    echo $e->getMessage();
}
コード例 #13
0
ファイル: bind.php プロジェクト: momoim/momo-api
 /**
  * 绑定开心网.
  * @param string $username
  * @param string $password
  * @param boolean $follow
  */
 private function kaixin001($username, $password, $follow)
 {
     set_time_limit(120);
     require_once Kohana::find_file('vendor', 'oauth/OAuthRequester');
     $okey = Kohana::config('uap.oauth');
     define("MOMO_CONSUMER_KEY", $okey['kaixin001.com']['WB_AKEY']);
     define("MOMO_CONSUMER_SECRET", $okey['kaixin001.com']['WB_SKEY']);
     define("MOMO_OAUTH_HOST", "http://api.kaixin001.com");
     define("MOMO_REQUEST_TOKEN_URL", MOMO_OAUTH_HOST . "/oauth/request_token");
     define("MOMO_AUTHORIZE_URL", MOMO_OAUTH_HOST . "/oauth/authorize");
     define("MOMO_ACCESS_TOKEN_URL", MOMO_OAUTH_HOST . "/oauth/access_token");
     define('OAUTH_TMP_DIR', function_exists('sys_get_temp_dir') ? sys_get_temp_dir() : realpath($_ENV["TMP"]));
     $store = OAuthStore::instance('MySQL');
     $usr_id = $this->user_id;
     try {
         try {
             $store->getServer(MOMO_CONSUMER_KEY, $usr_id);
         } catch (OAuthException2 $e) {
             //初始化
             $server = array('consumer_key' => MOMO_CONSUMER_KEY, 'consumer_secret' => MOMO_CONSUMER_SECRET, 'server_uri' => MOMO_OAUTH_HOST, 'signature_methods' => array('HMAC-SHA1', 'PLAINTEXT'), 'request_token_uri' => MOMO_REQUEST_TOKEN_URL, 'authorize_uri' => MOMO_AUTHORIZE_URL, 'access_token_uri' => MOMO_ACCESS_TOKEN_URL);
             //$store->deleteServer(MOMO_CONSUMER_KEY, $usr_id);
             $consumer_key = $store->updateServer($server, $usr_id);
         }
         $tokenResultParams = OAuthRequester::requestRequestToken(MOMO_CONSUMER_KEY, $usr_id, array("scope" => "basic create_records"), "GET");
         usleep(5);
         //STEP 1:  If we do not have an OAuth token yet, go get one
         $Params = array("email" => $username, "password" => $password, "callback" => urlencode('http://api.kaixin001.com/oauth/authorize?oauth_token=' . $tokenResultParams['token'] . '&oauth_callback=' . urlencode(url::site("bind/confirm")) . '&from=&oauth_client=1'), "appkey" => MOMO_CONSUMER_KEY, "fromclient" => "", "return" => "", "login" => "登陆");
         $query = '';
         foreach ($Params as $key => $value) {
             $query .= $key . '=' . $value . '&';
         }
         $ch = curl_init();
         curl_setopt($ch, CURLOPT_POST, true);
         curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
         if (!empty($_SERVER["HTTP_CLIENT_IP"])) {
             $cip = $_SERVER["HTTP_CLIENT_IP"];
         } else {
             if (!empty($_SERVER["HTTP_X_FORWARDED_FOR"])) {
                 $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
             } else {
                 if (!empty($_SERVER["REMOTE_ADDR"])) {
                     $cip = $_SERVER["REMOTE_ADDR"];
                 } else {
                     //找不到默認為momo服務器ip
                     $cip = "58.22.103.199";
                 }
             }
         }
         curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded', "CLIENT-IP: {$cip}", "X-FORWARDED-FOR: {$cip}"));
         curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.2.23) Gecko/20110921 Ubuntu/10.10 (maverick) Firefox/3');
         curl_setopt($ch, CURLOPT_URL, "http://wap.kaixin001.com/auth/login.php?isoauth=1");
         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
         curl_setopt($ch, CURLOPT_HEADER, true);
         curl_setopt($ch, CURLOPT_TIMEOUT, 30);
         //curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); //是否抓取302跳转后的
         $txt = curl_exec($ch);
         curl_close($ch);
         preg_match('@Location:(.*)@i', $txt, $matches);
         if (!isset($matches[1]) || stripos($matches[1], '/oauth/authorize') === FALSE) {
             $this->send_response(407, null, "用户名或密码错误");
             return null;
         }
         $Params = array("loginnewsfeed" => 1, "oauth_token" => $tokenResultParams['token'], "oauth_callback" => "", "appid" => $okey['kaixin001.com']['APP_ID'], "oauth_client" => 1, "accept" => "允许");
         $query = '';
         foreach ($Params as $key => $value) {
             $query .= $key . '=' . $value . '&';
         }
         $ch = curl_init();
         curl_setopt($ch, CURLOPT_POST, true);
         curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
         curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded', "CLIENT-IP: {$cip}", "X-FORWARDED-FOR: {$cip}"));
         curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.2.23) Gecko/20110921 Ubuntu/10.10 (maverick) Firefox/3');
         curl_setopt($ch, CURLOPT_URL, trim($matches[1]));
         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
         curl_setopt($ch, CURLOPT_HEADER, true);
         curl_setopt($ch, CURLOPT_TIMEOUT, 30);
         $txt = curl_exec($ch);
         curl_close($ch);
         preg_match('@你获取到的授权码是:<b>(\\w+)</b>@i', $txt, $matches);
         if (!isset($matches[1])) {
             $this->send_response(500, null, "oauth_verifier未取到");
             return null;
         }
         $oauth_verifier = $matches[1];
         usleep(5);
         //STEP 2:  Get an access token
         try {
             $access_token = OAuthRequester::requestAccessToken(MOMO_CONSUMER_KEY, $tokenResultParams['token'], $usr_id, 'POST', array("oauth_verifier" => $oauth_verifier));
             try {
                 //取得个人信息
                 usleep(5);
                 $request = new OAuthRequester("http://api.kaixin001.com/users/me.json", 'GET');
                 $result = $request->doRequest($this->user_id);
                 if ($result['code'] != 200) {
                     //$this->send_response(500, null, $result['body']);
                 }
                 $result = json_decode($result['body'], true);
                 if ($result) {
                     $access_token = array_merge($access_token, array("name" => $result["name"], "user_id" => $result["uid"], "homepage" => "http://www.kaixin001.com/home/{$result["uid"]}.html" . $domain));
                 }
             } catch (OAuthException2 $e) {
             }
             try {
                 if ($follow) {
                     //关注官网
                     //usleep(5);
                     //$request = new OAuthRequester("", 'POST');
                     //$result = $request->doRequest($this->user_id);
                 }
             } catch (OAuthException2 $e) {
             }
             return $access_token;
         } catch (OAuthException2 $e) {
             $this->send_response(500, null, $e->getMessage());
             //echo "OAuthException:  " . $e->getMessage();
             //var_dump( $e );
             return;
         }
     } catch (OAuthException2 $e) {
         $this->send_response(500, null, $e->getMessage());
         //echo "OAuthException:  " . $e->getMessage();
         //var_dump($e);
     }
 }
コード例 #14
0
 AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
 MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE.  AUTODESK, INC. 
 DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
 UNINTERRUPTED OR ERROR FREE.
*/
include_once "vendor/oauth/OAuthStore.php";
include_once "vendor/oauth/OAuthRequester.php";
//- Prepare the PHP OAuth for consuming our Oxygen service
$options = array('consumer_key' => ConsumerKey, 'consumer_secret' => ConsumerSecret, 'server_uri' => BaseUrl, 'request_token_uri' => BaseUrl . 'OAuth/RequestToken', 'authorize_uri' => BaseUrl . 'OAuth/Authorize', 'access_token_uri' => BaseUrl . 'OAuth/AccessToken');
OAuthStore::instance('Session', $options);
//- To disable the SSL check to avoid an exception with invalidate certificate on the server,
//- use the cURL CURLOPT_SSL_VERIFYPEER option and set it to false.
//- 1st leg: Get the 'request token'
$token = '';
try {
    $token_ = OAuthRequester::requestRequestToken(ConsumerKey, 0, array(), 'POST', $options, array(CURLOPT_SSL_VERIFYPEER => 0));
    $tmpRes = OAuthStore::instance()->getSecretsForSignature('', 0);
    $token_secret = $tmpRes['token_secret'];
    $token = array('oauth_token' => $token_['token'], 'oauth_token_secret' => $token_secret);
    //- The following line is for reference only, the call to OAuthRequester::requestRequestToken() includes that step
    //OAuthStore::instance ()->addServerToken (ConsumerKey, 'request', $token ['oauth_token'], $token ['oauth_token_secret'], 0, array ()) ;
    $fname = realpath(dirname(__FILE__)) . '/token.txt';
    file_put_contents($fname, serialize($token));
} catch (Exception $e) {
    echo "OAuth/RequestToken\n", 'Caught exception: ', $e->getMessage(), "\n";
    exit;
}
//- 2nd leg: Authorize the token
//- Currently, Autodesk Oxygen service requires you to manually log into the system, so we are using your default browser
try {
    //$url =BaseUrl . "OAuth/Authorize" . "?oauth_token=" . urlencode (stripslashes ($token ['oauth_token'])) ;
コード例 #15
0
        return array();
    }
}
$req_token_link = $CFG->wwwroot . '/blocks/gmail/oauth3/service/request_token.php';
$store = OAuthStore::instance('Google');
$user_id = $USER->id;
// most often the current user
// We must check if this user has a authorized token
// if they do not we need a link that says "grant access to my gmail"
// TODO:invalid old token link
// NOTE: if they need to revoke token or if current token doesn't work this link should
//       show up.
$consumer_key = get_config('blocks/gmail', 'consumer_key');
// the google apps domain
try {
    $token = OAuthRequester::requestRequestToken($consumer_key, $user_id);
} catch (OAuthException $e) {
    if ($e->message == 'User not in token table.') {
        // return the grant access link since user doesn't even have an entry in the tokens table
        print 'User has no token.';
    }
    // If Server Returns a 400 or something is the token useless?
}
// Call back location after getting the first token
$callback_uri = $CFG->wwwroot . '/blocks/gmail/oauth3/service/obtain_auth.php?consumer_key=' . rawurlencode($consumer_key) . '&usr_id=' . intval($user_id);
// Now redirect to the autorization uri and get us authorized
if (!empty($token['authorize_uri'])) {
    // Redirect to the server, add a callback to our server
    if (strpos($token['authorize_uri'], '?')) {
        $uri = $token['authorize_uri'] . '&';
    } else {
コード例 #16
0
ファイル: OsmOAuth.php プロジェクト: CloCkWeRX/kort
 /**
  * Returns the request token.
  *
  * @return string The request token.
  */
 protected function getRequestToken()
 {
     $result = \OAuthRequester::requestRequestToken($this->key, 0, null);
     return $result;
 }
コード例 #17
0
<?php

require_once '../../vendor/autoload.php';
define('OAUTH_HOST', 'http://' . $_SERVER['SERVER_NAME']);
$id = 1;
// Init the OAuthStore
$options = array('consumer_key' => '<MYCONSUMERKEY>', 'consumer_secret' => '<MYCONSUMERSECRET>', 'server_uri' => OAUTH_HOST, 'request_token_uri' => OAUTH_HOST . '/request_token.php', 'authorize_uri' => OAUTH_HOST . '/login.php', 'access_token_uri' => OAUTH_HOST . '/access_token.php');
OAuthStore::instance('Session', $options);
if (empty($_GET['oauth_token'])) {
    // get a request token
    $tokenResultParams = OAuthRequester::requestRequestToken($options['consumer_key'], $id);
    header('Location: ' . $options['authorize_uri'] . '?oauth_token=' . $tokenResultParams['token'] . '&oauth_callback=' . urlencode('http://' . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF']));
} else {
    // get an access token
    $oauthToken = $_GET['oauth_token'];
    $tokenResultParams = $_GET;
    OAuthRequester::requestAccessToken($options['consumer_key'], $tokenResultParams['oauth_token'], $id, 'POST', $_GET);
    $request = new OAuthRequester(OAUTH_HOST . '/test_request.php', 'GET', $tokenResultParams);
    $result = $request->doRequest(0);
    if ($result['code'] == 200) {
        var_dump($result['body']);
    } else {
        echo 'Error';
    }
}