当前位置: 首页 > 知识库问答 >
问题:

如何从Google OAuth2 PHP客户端获取用户国家和时区信息

华凌
2023-03-14

我正在使用PHP Google API客户端库使用OAuth2从Google帐户检索用户信息。然而,尽管谷歌的文档中指出,我似乎无法访问用户的国家或时区信息,即使令牌成功返回,并且所有其他信息都可以从userinfo.profile范围中获得。

我在这里使用了int heir库提供的示例代码,如果我在该文件的第49行上var_dump($user),我将获得以下输出(出于隐私考虑进行编辑):

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.loginhttps://www.googleapis.com/auth/plus.mehttps://www.googleapis.com/auth/userinfo.emailhttps://www.googleapis.com/auth/userinfo.profilehttps://www.googleapis.com/auth/userinfo,没有运气。它们似乎都提供了相同的结果。

我尽可能确保会话/缓存和其他方面不是一个因素。甚至更新身份认证。什么都不管用。

任何对如何通过Google API Client Library for PHP正确检索这些信息有一定了解的人都会大有裨益。

共有2个答案

仰英发
2023-03-14

事实证明,这些信息根本不是谷歌提供的,他们的文档已经过时。

时向文
2023-03-14

谷歌日历API-

文件地址:https://developers.google.com/google-apps/calendar/v3/reference/calendarList/list

 类似资料:
  • 问题内容: 我想知道是否有一种方法可以从客户端自动检索用户的时区。特别是在登录期间。 我尝试将其添加到登录页面中(使用): 然后将其添加到登录表单中 但始终是服务器的时区。 问题答案: 从文档中: 选择当前时区 当前时区相当于当前翻译的语言环境。但是,没有等效的Django可用来自动确定用户时区的Accept-Language HTTP标头。相反,Django提供了时区选择功能。使用它们来构建对您

  • 问题内容: 是否有从客户端浏览器获取时区的可靠方法?我看到了以下链接,但我想要一个更强大的解决方案。 使用JavaScript自动检测时区 JavaScript中的时区检测 问题答案: 查看此存储库pageloom很有帮助 下载jstz.min.js并将功能添加到您的html页面 然后从您的显示代码调用此函数

  • 我有Spring座后端和角前端。 身份验证是使用请求JSON正文中带有用户名和密码的“/登录”URL的POST请求来执行的(我使用基于表单的身份验证)。REST后端回复OK代码。一切都很好,我可以执行来自前端的其他需要身份验证的请求。 但是前端需要知道身份验证用户的角色是什么,以便它可以显示正确的视图/记录。我们从哪里可以在前端得到这个角色?我们从身份验证中得到的唯一响应是OK,这对于REST来说

  • 获取环境相关信息 var info = Tida.appinfo; 返回 json 格式: { "engine": "tmm", "name": "tmall", "engineVer": "4.9.2", "ver": "4.9.2" } 比较全面的环境相关判断 lib.env.params - url中search参数的对象,例如有ttid参数可以通过lib

  • 使用paypal的开发者帐户,我可以通过创建一个应用程序获得客户端ID和密钥,但不是使用live帐户。 我正在使用REST API在我的网站上进行交易,我要求用户(谁有贝宝帐户)输入他们的客户ID和秘密密钥,并使用这个信息将钱转入他们的帐户,付款是通过信用卡完成的。它在开发人员帐户上运行良好,但是从live帐户上获取客户端ID和密钥的选项在哪里呢? 或者有没有其他的方式我可以做到这一点,我想把钱转

  • 问题内容: 问题: 是否有一个javascript(客户端)代码来获取访问者的国家/语言代码,该代码是准确的并且是跨“现代”浏览器的?我要寻找的结果一样,,,等。 我试过了 : 并在同一台计算机和同一位置安装了Chrome和Firefox。 问题答案: 正如您所链接的问题之一所言,这是不可靠的。 问这个问题的原因很多,但是您仍在搜索中说明有关该问题的信息。 纯粹 在客户端进行语言检测几乎没有可靠的