3

私はよく旅行しますが、そのときの都市を表示するためのサイト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セッションなどを行う方法を理解する必要があります!

4

2 に答える 2

1

私の理解では、トークンはあなたが望む限り(つまり、あなたがそれを取り消すまで)存続します。

上記のコードを試しましたが、次のエラーが発生します。

致命的なエラー:キャッチされない例外'Google_AuthException'とメッセージ'OAuth2トークンの更新エラー、メッセージ:' {"error": "invalid_grant"} '

私は自分のclientID/secretなどをGoogleで構成されたものとして設定しました。

于 2013-01-14T01:48:30.487 に答える
0

さて、皆さん、APIは私にとって少し誤解を招くようです。私はこれにほぼ1か月間同じアクセストークンを持っていて、それは自分自身を更新し続けているようです。誰かがより多くの情報を持っている場合に備えて、この質問は開いたままにしておきます-2か月続くかどうかを確認します!

于 2012-11-19T20:11:48.003 に答える