Google Latitude возвращает пустой ресурс местоположения. Что -то не так в этом потоке OAuth?

StackOverflow https://stackoverflow.com/questions/4837674

Вопрос

Используя примеры, у меня есть этот код. Он работает нормально, разрешает правильные прицелы и все такое:

<?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->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(); 

Нет, моя проблема в том, что я получаю пустой ресурс местоположения. Это просто похоже на это:

{"data":{"kind":"latitude#location"}}

Данные отсутствуют. Но никакой ошибки или чего -то еще.

Я вошел в систему, и мое местоположение установлено, и Google гарантирует, что LON и LAT будут возвращены.

Любые идеи?

Это было полезно?

Решение

Я был немного мисс под руководством описания API. Как только я прошел параметр гранулярности, все работало нормально. Я также должен был добавить его с $ client-> addparameterget («Гранулярность», «Лучший»), потому что OTERHWISE подписание OAUTH не сработало.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top