如何获取当前认证用户的email地址?当前返回null



我想查看当前登录并在我的WebApp中进行身份验证的用户的电子邮件和配置文件名称。

我的应用程序的后端是在PHP,我目前正在使用官方的谷歌API PHP客户端库,并获得访问用户的谷歌驱动器帐户。

为了获得名称,我一直试图通过userinfo端点。

$service = new Google_Service_Drive($client);
echo(serialize($googleOAuth->userinfo->get()->name) . '   ');

然而,这并没有给我用户的电子邮件地址,它目前返回空。

这些是我请求用户的授权范围:

$client->setScopes(Google_Service_Drive::DRIVE);
$client->setScopes(Google_Service_Oauth2::USERINFO_EMAIL);
$client->setScopes(Google_Service_Oauth2::USERINFO_PROFILE);

我怎么收到邮件?

编辑

我添加了作用域:

$client->addScope('email');
$client->addScope('profile');

然后它与Google_Service_Oauth2对象一起工作。

我不建议使用userinfo端点,因为返回的数据并不总是返回。你应该通过people API people.get

$service = new Google_Service_People($client);
$response = $service->people->get("people/me");

相关内容

  • 没有找到相关文章

最新更新