如何使用Google客户端API获取用户位置信息 [英] how to get user location information using google client api
本文介绍了如何使用Google客户端API获取用户位置信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在自己的网站上实现了google登录,我想访问用户的位置,但无法访问.
I implementing google login in my site, I want to access user's location but I am not able to access.
我已经搜索了互联网,但无法获得有用的信息.
I have searched the internet but could not get useful info.
验证码
if (!function_exists('curl_reset'))
{
function curl_reset(&$ch)
{
$ch = curl_init();
}
}
require_once __DIR__ . '/google-api-php-client-2.2.0/vendor/autoload.php';
$client = new Google_Client();
$client->setAuthConfig('client_secrets.json');
$redirectURL = 'www.mysite.com/gmail-callback.php';
$client->setRedirectUri($redirectURL);
$client->addScope("email");
$client->addScope("profile");
//$client->addScope('https://www.googleapis.com/auth/glass.location');
$auth_url = $client->createAuthUrl();
header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
回叫代码
if (!function_exists('curl_reset'))
{
function curl_reset(&$ch)
{
$ch = curl_init();
}
}
require_once __DIR__ . '/google-api-php-client-2.2.0/vendor/autoload.php';
$client = new Google_Client();
$client->setAuthConfig('client_secrets.json');
if(isset($_GET['code'])){
$client->authenticate($_GET['code']);
$_SESSION['gmail_access_token'] = $client->getAccessToken();
}elseif(!isset($_GET['code'])){
$redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/mysuite';
header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}
if(!empty($_SESSION['gmail_access_token'])){
$client->setAccessToken($_SESSION['gmail_access_token']);
$service = new Google_Service_Oauth2($client);
$user = $service->userinfo->get();
print_r($user); //printing user information, but no user location
}
推荐答案
您可以使用Google谷歌纵横服务. ( Google_LatitudeService.php )
You can use google latitude service. (Google_LatitudeService.php)
示例代码(由Google提供)
Sample Code (given by google):
<?php
/*
* Copyright 2011 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
session_start();
require_once '../../src/Google_Client.php';
require_once '../../src/contrib/Google_LatitudeService.php';
$client = new Google_Client();
// Visit https://code.google.com/apis/console to generate your
// oauth2_client_id, oauth2_client_secret, and to register your oauth2_redirect_uri.
// $client->setClientId('insert_your_oauth2_client_id');
// $client->setClientSecret('insert_your_oauth2_client_secret');
// $client->setRedirectUri('insert_your_oauth2_redirect_uri');
$client->setApplicationName("Latitude_Example_App");
$service = new Google_LatitudeService($client);
if (isset($_REQUEST['logout'])) {
unset($_SESSION['access_token']);
}
if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$_SESSION['access_token'] = $client->getAccessToken();
$redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
}
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
$client->setAccessToken($_SESSION['access_token']);
} else {
$authUrl = $client->createAuthUrl();
}
if ($client->getAccessToken()) {
// Start to make API requests.
//$location = $service->location->listLocation();
$currentLocation = $service->currentLocation->get();
$_SESSION['access_token'] = $client->getAccessToken();
}
?>
<!doctype html>
<html>
<head><link rel='stylesheet' href='style.css' /></head>
<body>
<header><h1>Google Latitude Sample App</h1></header>
<div class="box">
<?php if(isset($currentLocation)): ?>
<div class="currentLocation">
<pre><?php var_dump($currentLocation); ?></pre>
</div>
<?php endif ?>
<?php if (isset($location)): ?>
<div class="location">
<pre><?php var_dump($location); ?></pre>
</div>
<?php endif ?>
<?php
if(isset($authUrl)) {
print "<a class='login' href='$authUrl'>Connect Me!</a>";
} else {
print "<a class='logout' href='?logout'>Logout</a>";
}
?>
</div>
</body></html>
这篇关于如何使用Google客户端API获取用户位置信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文