I am trying to use Google Oauth API to get userinfo. It works perfectly for Google Plus API but I am trying to create a backup in case the user doesn't have google plus account. The authentication process is correct and I even get the $userinfo object but how exactly do I access the properties. I tried $userinfo->get() but it only return the id of the user.
Am I doing something wrong? Here is the code that I am using...
require_once '../../src/Google_Client.php'; require_once '../../src/contrib/Google_Oauth2Service.php'; session_start(); $client = new Google_Client(); $client->setApplicationName("Google+ PHP Starter Application"); // 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('*********************'); $client->setClientSecret('**************'); $client->setRedirectUri('***************'); $client->setDeveloperKey('**************'); $plus = new Google_Oauth2Service($client); if (isset($_REQUEST['logout'])) { unset($_SESSION['access_token']); } if (isset($_GET['code'])) { $client->authenticate($_GET['code']); $_SESSION['access_token'] = $client->getAccessToken(); header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']); } if (isset($_SESSION['access_token'])) { $client->setAccessToken($_SESSION['access_token']); } if ($client->getAccessToken()) { $userinfo = $plus->userinfo; print_r($userinfo->get()); } else { $authUrl = $client->createAuthUrl(); } ?> <!doctype html> <html> <head> <meta charset="utf-8"> <link rel='stylesheet' href='style.css' /> </head> <body> <header><h1>Google+ Sample App</h1></header> <div class="box"> <?php if(isset($personMarkup)): ?> <div class="me"><?php print $personMarkup ?></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>
Thanks...
**EDIT*** Was missing Scopes--Added
$client->setScopes(array('https://www.googleapis.com/auth/userinfo.email','https://www.googleapis.com/auth/userinfo.profile'));
works now...
Was missing scopes
$client->setScopes(array('https://www.googleapis.com/auth/userinfo.email','https://www.googleapis.com/auth/userinfo.profile'));
Works like a charm now!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With