我正在使用PHP Google API 客户端库从使用 OAuth2 的 Google 帐户中检索用户信息。然而,尽管谷歌的文档说明了什么,我似乎无法访问用户的国家或时区信息,即使成功返回了令牌并且可以从userinfo.profile
范围中获取所有其他信息。
我在这里使用了继承人库中提供的示例代码,如果我var_dump($user)
在该文件的第 49 行,我会得到以下输出(出于隐私考虑而进行了编辑):
array(10) {
["id"]=>
string(21) "123" /* Redacted */
["email"]=>
string(13) "XXX@gmail.com" /* Redacted */
["verified_email"]=>
bool(true)
["name"]=>
string(14) "Sherif Ramadan"
["given_name"]=>
string(6) "Sherif"
["family_name"]=>
string(7) "Ramadan"
["link"]=>
string(27) "https://plus.google.com/XXX" /* Redacted */
["picture"]=>
string(0) "https://lh3.googleusercontent.com/-XXX-Zs/AAAAAAAAAA/AAAAAAAAA/cmBwzMLdYqM/photo.jpg" /* Redacted */
["gender"]=>
string(4) "male"
["locale"]=>
string(2) "en"
}
如您所见,没有可用的时区或国家信息。我也尝试了各种范围,例如https://www.googleapis.com/auth/plus.login
, https://www.googleapis.com/auth/plus.me
, https://www.googleapis.com/auth/userinfo.email
, https://www.googleapis.com/auth/userinfo.profile
和https://www.googleapis.com/auth/userinfo
,但没有运气。它们似乎都提供了相同的结果。
我尽可能确保会话/缓存和其他方面不是一个因素。甚至更新已采取的身份验证。没有任何效果。
任何对如何通过适用于 PHP 的 Google API 客户端库正确检索此信息有所了解的人都会有很大帮助。