2011-04-02 16 views

回答

1

这是基于zend框架的oauth库。

<?php 
ini_set("display_errors",1); 
error_reporting(E_ALL); 
session_start(); 
set_include_path('/home/library/'.get_include_path()); 
require_once 'Zend/Oauth/Consumer.php'; 

$oauthOptions = array(
    'requestScheme'  => Zend_Oauth::REQUEST_SCHEME_HEADER, 
    'version'    => '1.0', 
    'consumerKey'   => 'ivana.2x.to', 
    'consumerSecret'  => '*********', 
    'signatureMethod'  => 'HMAC-SHA1', 
    'requestTokenUrl'  => 'https://www.google.com/accounts/OAuthGetRequestToken', 
    'userAuthorizationUrl' => 'https://www.google.com/latitude/apps/OAuthAuthorizeToken', 
    'accessTokenUrl'  => 'https://www.google.com/accounts/OAuthGetAccessToken', 
    'callbackUrl'   => 'http://ivana.2x.to/geo/?show=callback', 
); 
$consumer = new Zend_Oauth_Consumer($oauthOptions); 
if (!isset($_SESSION['ACCESS_TOKEN_GOOGLE'])) { 
    if (!empty($_GET)) { 
     $token = $consumer->getAccessToken($_GET, unserialize($_SESSION['REQUEST_TOKEN_GOOGLE'])); 
     $_SESSION['ACCESS_TOKEN_GOOGLE'] = serialize($token); 
    } else { 
     $token = $consumer->getRequestToken(array('scope'=>'https://www.googleapis.com/auth/latitude')); 
     $_SESSION['REQUEST_TOKEN_GOOGLE'] = serialize($token); 
     $customparams = array('domain' => 'ivana.2x.to', 'granularity' => 'best', 'location' => 'current'); 
     $consumer->redirect($customparams); 
     exit; 
    } 
} else { 
    $token = unserialize($_SESSION['ACCESS_TOKEN_GOOGLE']); 
    //$_SESSION['ACCESS_TOKEN_GOOGLE'] = null; // do not use, we want to keep the access token 
} 
$client = $token->getHttpClient($oauthOptions); 
$client->addParameterGet('granularity','best'); 
$client->setUri('https://www.googleapis.com/latitude/v1/currentLocation'); 
$client->setMethod(Zend_Http_Client::GET); 


$response = $client->request(); 
$body = $response->getBody(); 
header('Content-Type: ' . $response->getHeader('Content-Type')); 
echo $response->getBody(); 
  • 随意复制
  • 不用于商业用途没有进一步的许可
  • 不要错过使用 - 尊重他人的隐私
  • 世界上没有保证任何东西
  • 请不要告我。
+1

“请不要起诉我” HAHAH有趣的家伙:对 – Kyle 2011-04-02 16:45:54

+0

不,我的意思吧XD – 2011-04-02 16:48:11

+0

棘手的部分是通过粒度参数,至少在我写这篇文章的时候它不是任何地方和响应记录只是空着,其他的一切都是正确的。它不是可选的,并且没有默认值。 – 2011-04-02 16:50:03

相关问题