【问题标题】:Get User's first and last name via Google API通过 Google API 获取用户的名字和姓氏
【发布时间】:2021-01-16 22:49:09
【问题描述】:

目前我正在开发一个 Chrome-GMAIL 扩展程序,它要求我获取登录用户的名字和姓氏。为了实验,我使用了下面的 goggle API(userinfo),并成功获得了我想要的名字:

https://www.googleapis.com/auth/userinfo.profile

但是,使用 userinfo API 会导致我的清单中的 OAuth2 范围发生变化。此更改将反过来导致我现有用户的权限提示(如果未设置域范围的委派)。重点是在我的用户面前有更多提示的想法,或者额外的 oauth 范围并不是我真正想要的。

目前我们的扩展使用以下 OAuth 范围和 API:

  • Chrome 的身份 API
  • Chrome 的存储 API
  • GMAIL.modify
  • GMAIL.send

我的问题是,是否可以使用我列出的上述任何范围/权限定义/允许/提供的 API 来获取名字和姓氏?还是 userinfo 是唯一的出路?

非常感谢。

【问题讨论】:

  • 如果您想要个人资料信息,那么您需要使用个人资料范围之一,并通过人员 api 或用户信息端点。甚至developers.google.com/gmail/api/reference/rest/v1/users/… 也不会给你用户的名字。
  • 是的,就像我说的,我认为您需要请求配置文件范围或googleapis.com/auth/userinfo.profile 才能获取此信息。
  • 感谢@DaImTo。我只是希望有其他方法。再次感谢您。
  • 您需要一个 OAuth 管理器来向 Gmail 和 Google Profile API 发出请求。我可以推荐你Pizzly,这是一个开源项目,从前端的角度来看非常棒。

标签: google-chrome oauth google-api gmail-api


【解决方案1】:

名字和姓氏等个人资料数据是私人数据。您很清楚某些 Google api 可以让您访问一些通常需要额外范围的数据。对于电子邮件,您通常需要请求电子邮件范围才能将其取回,但 Gmail api 确实有一个端点 getprofile,它将返回当前用户的电子邮件地址,而无需您请求电子邮件范围。

但是我不知道有任何 API 可以让您在不请求配置文件或 user.profile 范围的情况下访问用户的名字和姓氏。

如果您决定添加范围,我建议您通过 people api 而不是 userinfo 端点,因为用户信息端点返回的数据不能保证总是返回名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-26
    • 2019-01-06
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    • 2020-02-07
    相关资源
    最近更新 更多