适用于特定帐户的Google Latitude API永久身份验证

时间:2012-10-26 23:24:05

标签: php oauth google-latitude

我经常旅行,我有一个很酷的想法,即建立一个网站,whereiskavi.com,只是展示我当时所在的城市。简单,我使用纬度!或者我想。

我的研究给我带来了挑战。 oauth需要从浏览器中提示,显然我不能授权每次点击。现在我使用的应用程序并没有经常重新提示我进行授权,但到目前为止,我能够做到这一点的唯一方法是获取一个oauth json字符串并将其粘贴,然后等待它过期。以下代码有效,但仅限于到期日期。

我的问题 - 如何永久授权我的应用始终查看我的帐户?

到目前为止,这是我成功的代码:

<?php
require_once '../../src/Google_Client.php';
require_once '../../src/contrib/Google_LatitudeService.php';
require_once 'gogeocode-0.2/src/GoogleGeocode.php';

$client = new Google_Client();
$client->setClientId('0000000000000.apps.googleusercontent.com');
$client->setClientSecret('abcdefghijklmnopqrstuvwxyz');
$client->setApplicationName("whereiskavi.com");
$mapsApiKey = 'mApSApIKEy';


$access_token = '{"access_token":"CENSORSHIP_YEAH","token_type":"Bearer","expires_in":3600,"refresh_token":"THIS_MIGHT_BE_SENSITIVE DATA","created":1351291247}';
$client->setAccessToken($access_token);


$service = new Google_LatitudeService($client);
$location = $service->currentLocation->get();

$geo = new GoogleGeocode($mapsApiKey);
$result = $geo->geocode( $location['latitude'].', '.$location['longitude']);
$result = $result['Placemarks'][0];

echo '<h1>'.strtoupper($result['Locality'].', '.$result['AdministrativeArea']).'</h1>';
?>

我真的只需要弄清楚如何进行永久性的oauth会话等等!

2 个答案:

答案 0 :(得分:1)

我的理解是,只要您愿意,令牌就会存在(即直到您撤销它)。

我已尝试过上面的代码,但收到以下错误:

致命错误:未捕获的异常“Google_AuthException”,并显示消息“刷新OAuth2令牌时出错,消息:'{”error“:”invalid_grant“}'

即使我已按照Google配置设置了我的clientID / secret等。

答案 1 :(得分:0)

好吧,伙计们,似乎API对我来说有点误导。我已经拥有相同的访问令牌近一个月,它似乎不断更新自己。如果有人有更多信息,我会打开这个问题 - 我们会看看它是否会持续2个月!