如何从谷歌身份工具包获得用户的形象


How to get user's image from google identity toolkit

google identity toolkit PHP Quick Start应用程序提供了以下代码块,用于在用户成功登录后显示有关用户的一些信息。

<?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

我想显示用户的头像/照片,但似乎不能理清如何做到这一点。我试过$gitkitUser->getPhotoUrl();,但似乎没有返回任何东西,我找不到任何好的文档。

如果我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'];