google examples apiclient php email google-plus google-api-php-client

php - examples - Cómo obtener una dirección de correo electrónico cuando el usuario está autenticado con Google Oauth2 y people.me



login google api php (1)

$ me [''emails''] es un Array, no un Hash. Así que agrega un [0] para elegir el primer Mailadress:

$correo = ($me[''emails''][0][''value'']);

Ahora debería funcionar bien ...

Soy nuevo en php y en la API de Google, estoy tratando de obtener la dirección de correo electrónico cuando el usuario canta con Google+, obtengo toda la información de usuario usando $ plus-> people-> get ("me") pero cuando Intento obtener la dirección de correo electrónico que falla con este error:

Aviso de PHP: índice indefinido: valor

aquí está mi código:

<?php session_start(); set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER[''DOCUMENT_ROOT''] . "/src"); require_once ''Google/Client.php''; require_once ''Google/Service/Plus.php''; $client_id = ''XXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com''; $client_secret = ''XXXXXXXXXXXXXXXXXXX''; $redirect_uri = ''http://www.XXXXXXXXXXXXXX.com/pruebas.php''; $client = new Google_Client(); $client->setClientId($client_id); $client->setClientSecret($client_secret); $client->setRedirectUri($redirect_uri); $client->addScope("https://www.googleapis.com/auth/userinfo.profile"); $client->addScope("https://www.googleapis.com/auth/userinfo.email"); $plus = new Google_Service_Plus($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'']); $_SESSION[''token''] = $client->getAccessToken(); } else { $authUrl = $client->createAuthUrl(); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title>Pruebas</title></head> <body> <?php if (isset($authUrl)) { print "<a class=''login'' href=''$authUrl''><img src=''logogoo/Red-signin-Medium-base-32dp.png''></a>"; } else { print "<a class=''logout'' href=''pruebas.php?logout''>Cerrar:</a>"; } if (isset($_SESSION[''access_token''])) { $me = $plus->people->get("me"); print "<br>ID: {$me[''id'']}/n<br>"; print "Display Name: {$me[''displayName'']}/n<br>"; print "Image Url: {$me[''image''][''url'']}/n<br>"; print "Url: {$me[''url'']}/n<br>"; $name3 = $me[''name''][''givenName'']; echo "Nombre: $name3 <br>"; //Everything works fine until I try to get the email $correo = ($me[''emails''][''value'']); echo $correo; } ?> </body> </html>

Solo quiero obtener la dirección de correo electrónico de la cuenta desde $ me para almacenarla en mi aplicación.

Gracias.