Google restituisce latitudine risorsa posizione vuota. Qualcosa non va in questo flusso Oauth?
-
27-10-2019 - |
Domanda
utilizzando esempi che ho questo codice. Funziona bene, autorizza gli scopi propri e tutto ciò:
<?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();
No il mio problema è che ottengo una risorsa posizione vuota. Sembra proprio come questo:
{"data":{"kind":"latitude#location"}}
I dati sono mancante. Ma nessun errore o altro.
Sono entrato e la mia posizione è impostato e google garanzie lon e lat da restituire.
Tutte le idee?
Soluzione
ero un po 'perdere guidato dalla descrizione api. Una volta ho passato il parametro granularità, tutto ha funzionato bene. Ho anche dovuto aggiungere con $ client-> addParameterGet ( 'granularità', 'migliore'), perché il oterhwise OAuth firma non avrebbe funzionato.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow