Google Admin Directory用户响应中缺少照片

时间:2018-09-26 16:05:01

标签: google-admin-sdk google-directory-api

我正在使用Google Admin Directory Users端点检索我们公司域中的所有用户。该请求正在按预期方式运行,我正在收到完整的用户列表。

但是大量用户缺少照片。 thumbnailPhotoUrl属性出现在每个用户条目上,但是跟随URL会导致

https://ssl.gstatic.com/s2/profiles/images/silhouette200.png

这是我们大量用户的默认头像。

但是:

  • 如果我进入“收件箱”并向显示默认头像的用户之一发送电子邮件,则在发送电子邮件时会显示其个人资料图片
  • 当用户使用其公司电子邮件(使用 Firebase Auth),其用户响应包含其化身的公共网址
  • 如果我登录G Suite管理员并查看我们的用户,则他们中的大多数都有头像。只有一小部分用户显示剪影头像。

此外,docs状态:

  

注意:在此版本的API中,照片是用户最新的Gmail聊天个人资料照片。这与Google+个人资料照片不同。

在我们查看过的帐户中,所有用户都拥有Gmail聊天/环聊个人资料照片。

因此,似乎用户拥有与其帐户相关联的照片。为什么Google管理员目录中的照片URL显示默认头像?而不是用户上传的照片吗?

2 个答案:

答案 0 :(得分:1)

我今天遇到这个问题,并试图解决问题时发现了您的问题。我想我有答案!

每个用户个人资料中导致thumbnailPhotoUrl的{​​{1}}属性以silhouette200.png开头,后跟一个长ID字符串。

另一方面,任何返回有效照片(而不是重定向到默认/匿名照片)的用户个人资料都以https://www.google.com/s2/photos/private/ ...开头,例如my Google Apps/G Suite profile photo

我很快发现,如果我在尝试查看这些缩略图的浏览器中登录自己的G Suite帐户,它们会按预期解析,而不是https://www.google.com/s2/photos/public/

因此:要在自定义应用程序中显示G Suite用户照片,该应用程序用户需要使用有权读取其他G Suite域用户私人缩略图的G Suite帐户登录

您的应用将需要代理照片请求才能返回实际的缩略图。

  

当然,请务必考虑用户的隐私期望和   规定;个人资料照片通常是私人的   表示用户没有设置自己的个人资料照片,但有   由某些外部应用程序或同步过程设置。 (据我所知,   使用My AccountAbout Me设置自己的个人资料照片,   它总是公开的。)

答案 1 :(得分:0)

添加一些文档参考以帮助定义最终目的。 Google API部分为here

参数viewType()定义返回用户配置文件的哪一部分,这又取决于GSuite目录设置。此参数还定义了 使用Google API时获得授权。

使用定义为here的第三方应用程序时,更多元素将发挥作用。 最后,出现了缩略图...