如何从 google 身份工具包中获取用户图像

How to get user's image from google identity toolkit

google 身份工具包 PHP 快速启动应用程序提供以下代码块,用于在用户成功登录后显示一些有关用户的信息。

<?php if ($gitkitUser) { ?>
    Welcome back!<br><br>
    Email: <?= $gitkitUser->getEmail() ?><br>
    Id: <?= $gitkitUser->getUserId() ?><br>
    Name: <?= $gitkitUser->getDisplayName() ?><br>
    Identity provider: <?= $gitkitUser->getProviderId() ?><br>
<?php } else { ?>
    You are not logged in yet.
<?php } ?>

页面上的输出如下所示:

Email: someuser@hotmail.com 
Id: 123
Name: Bob User
Identity provider: facebook.com

我也想显示用户的 avatar/photo,但似乎无法弄清楚如何做到这一点。我试过 $gitkitUser->getPhotoUrl(); 但似乎 return 什么都没有,而且我找不到任何好的文档。

如果我 print_r $gitkitUser 对象,我可以看到确实有一个 photoUrl 并且 URL 是正确的,但它设置为私有,我不能似乎可以访问它:

Gitkit_Account Object(
     [localId: Gitkit_Account: private] => 123
     [email: Gitkit_Account: private] => someuser@hotmail.com
     [providerId: Gitkit_Account: private] => facebook.com
     [providerInfo: Gitkit_Account: private] => Array([0] => Array(
        [providerId] => facebook.com
        [displayName] => Bob User
        [photoUrl] => https: //scontent.xx.fbcdn.net/..... 
        [federatedId] => http://facebook.com/123 ) 
     ) 
     [displayName:Gitkit_Account:private] => Bob User 
     [photoUrl:Gitkit_Account:private] => 
     [emailVerified:Gitkit_Account:private] => 
     [passwordHash:Gitkit_Account:private] => 
     [salt:Gitkit_Account:private] => 
)

关于如何访问用户图像以在页面上显示的任何想法?

是的,我也注意到 $gitkitUser->getPhotoUrl() 检索了一个空值。我猜 photoUrl 不会像其他的那样自动填充。他们最近添加了一个 getProviderInfo 方法,您可以像这样使用它从第一个联合 ID 获取照片 URL:

$provider_info = $gitkitUser->getProviderInfo();
$photo_url = $provider_info[0]['photoUrl'];