这就是我编码以通过谷歌验证用户并显示基本内容的方式。
使用谷歌验证用户时出错
错误:oauth 2.0 google + api 的凭据无效,抛出 apiServiceException
这是我的代码:
<?php
require_once 'google-api-php-client/src/apiClient.php';
require_once 'google-api-php-client/src/contrib/apiPlusService.php';
require_once 'google-api-php-client/src/contrib/apiOauth2Service.php';
session_start();
$client = new apiClient();
$client->setApplicationName('demo');
$client->setClientId('asd6354egfdgtdewd');
$client->setClientSecret('-ooRVhB5nbdsfisfgf7s6fsfsfj');
$client->setRedirectUri('http://demo.com');
$client->setDeveloperKey('HGFHJVhjb894rbbvjhdfjdsvkbdvdv');
$client->setScopes(array('https://www.googleapis.com/auth/plus.me',
'https://www.googleapis.com/auth/userinfo.email'));
$plus = new apiPlusService($client);
$oauth2 = new apiOauth2Service($client);
if (isset($_REQUEST['logout']))
{
unset($_SESSION['access_token']);
}
if (isset($_GET['code']))
{
$client->authenticate();
$_SESSION['access_token'] = $client->getAccessToken();
header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
# FIXME Is exit() missing?
}
if (isset($_SESSION['access_token']))
{
$client->setAccessToken($_SESSION['access_token']);
}
if ($client->getAccessToken())
{
$me = $plus->people->get('me');
$user = $oauth2->userinfo->get();
$email = filter_var($user['email'], FILTER_SANITIZE_EMAIL);
$optParams = array('maxResults' => 100);
$activities = $plus->activities->listActivities('me', 'public',$optParams);
$_SESSION['access_token'] = $client->getAccessToken();
} else {
$authUrl = $client->createAuthUrl();
}