0

这就是我编码以通过谷歌验证用户并显示基本内容的方式。

使用谷歌验证用户时出错

错误: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();

}
4

1 回答 1

0

您必须在调用andsetAccessToken($token)之前调用该函数。$plus->people->get('me')$user = $oauth2->userinfo->get()

于 2015-05-08T00:29:28.113 回答