我正在尝试修改Google的PHP idtoken example,不仅会返回电子邮件地址(确实如此),还会返回姓名。
我修改了第36行:
$client->setScopes('email');
为:
$client->setScopes( array( "https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/userinfo.profile" ) );
检查$token_data
时不包含此信息。之前有一个question被问及此问题,但使用的contrib/Google_Oauth2Service.php
已不再包含在官方google-api-php-client
中,所以我宁愿不使用此方法。
为了让代码返回电子邮件地址,名字和姓氏,我需要更改什么?全名可以是第一个/最后一个不可用。
答案 0 :(得分:2)
我能够在Mahasish Shome的评论的帮助下完成这项工作。我还必须在Google Developer Console中启用“Google+ API”。
以下是我需要添加的代码:
require_once 'Google/Service/Plus.php';
// further on down in the example code...
$token_data = $client->verifyIdToken()->getAttributes(); // in preexisting code
// my new code...
$plus = new Google_Service_Plus( $client );
$me = $plus->people->get('me');
// further on down in the example code...
var_dump($token_data); // in preexisting code
// my new code...
var_dump($me);