L'utilisation de Google+ API pour PHP — Besoin d'obtenir l'adresse mail
Je suis en utilisant Google API PHP. La documentation est plutôt terne... je veux permettre aux utilisateurs de connecter leur compte Google+ de l'information et à l'utiliser pour signer les utilisateurs dans ma base de données. Pour ce faire j'ai besoin d'obtenir l'e-mail qu'ils utilisent pour leur compte google. Je n'arrive pas à comprendre comment. Il est assez facile de Facebook en forçant l'autorisation lorsque les utilisateurs se connectent à mon application. Quelqu'un a une idée? C'est le code que j'utilise pour attraper les utilisateurs de google+ profile et il fonctionne très bien, sauf les utilisateurs ne peuvent pas avoir leur e-mail indiquée.
include_once("$DOCUMENT_ROOT/../qwiku_src/php/google/initialize.php");
$plus = new apiPlusService($client);
if (isset($_GET['code'])) {
$client->authenticate();
$_SESSION['token'] = $client->getAccessToken();
header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
}
if (isset($_SESSION['token'])) {
$client->setAccessToken($_SESSION['token']);
}
if ($client->getAccessToken()) {
$me = $plus->people->get('me');
print "Your Profile: <pre>" . print_r($me, true) . "</pre>";
//The access token may have been updated lazily.
$_SESSION['token'] = $client->getAccessToken();
} else {
$authUrl = $client->createAuthUrl();
print "<a class='login' href='$authUrl'>Connect Me!</a>";
}
Sans que les utilisateurs adresse e-mail, ce genre de défaites le but de permettre aux utilisateurs de vous inscrire avec Google+ plus Personne familière avec l'API de Google de savoir comment je peux l'obtenir?
OriginalL'auteur Throttlehead | 2012-01-02
Vous devez vous connecter pour publier un commentaire.
La UserInfo API est maintenant pris en charge par l'API de Google Client PHP.
Voici un petit exemple d'application:
http://code.google.com/p/google-api-php-client/source/browse/trunk/examples/userinfo/index.php
Les bits importants de l'échantillon est ici:
Je suis en supposant que cet extrait a été appelé avec une requête GET, y compris le code d'autorisation. N'oubliez pas d'inclure ou d'exiger apiOauth2Service.php pour que cela fonctionne. Dans mon cas, c'est quelque chose comme ceci:
Bonne chance.
OriginalL'auteur Chirag Shah
Mis à jour aujourd'hui avec l'API:
Ce qui suppose le suivant:
OriginalL'auteur Joe Bergevin
Pardonnez-moi si je me manque quelque chose, mais comment savez-vous ce que Google compte pour lier à eux si vous n'avez pas son adresse email? Habituellement, vous feriez invite l'utilisateur à entrer son Compte Google e-mail afin de trouver leur profil en premier lieu.
À l'aide de OAuth2, vous pouvez demander des autorisations par le biais de la
scope
paramètre. (De la Documentation.) J'imagine que les étendues que vous voulez sonthttps://www.googleapis.com/auth/userinfo.email
ethttps://www.googleapis.com/auth/userinfo.profile
.Ensuite, c'est une simple question de obtenir les informations de son profil une fois que vous avez obtenu votre jeton d'accès. (Je suppose que vous avez été en mesure de racheter la retourné le code d'autorisation pour un jeton d'accès?) Il suffit de faire une requête get à
https://www.googleapis.com/oauth2/v1/userinfo?access_token={accessToken}
, qui retourne un tableau JSON de données de profil, y compris e-mail:Il doit y avoir une méthode dans la bibliothèque PHP pour faire cette demande, mais je ne le trouve pas.Pas de garanties, mais essayez ceci:De toute façon, dans le code que vous avez posté, il suffit de passer la portée souhaitée à
createAuthUrl()
:Bon, ça sonne bien.
code.google.com/p/google-api-php-client Plus d'info ici.
Il semble qu'il n'est pas facile d'aller à ce sujet comme il n'y a pas de fonction. J'ai peut-être trouvé une solution de contournement en creusant autour dans le Groupe Google. Je vais poster la réponse si je reçois ce travail, qui ne devrait pas être trop dur. Je vais juste utiliser une requête HTTP, il me semble. groups.google.com/forum/#!topic/google-api-php-client/...
Ah non, il est certainement. Donnez-moi une minute ou deux.
OriginalL'auteur benesch