如何直接从 google apps 域获取用户的 OAUTH id?

How can you get a user's OAUTH id from a google apps domain directly?

我正在编写一个用户通过 google OAUTH 2.0 登录的 Web 应用程序。当他们第一次登录时,我将我记录的电子邮件地址与 OAUTH 令牌的电子邮件地址进行匹配,但最终将 google 用户 ID 值存储为重要部分 - 这是一个很长的数字,最终显示如果您没有自定义 URL,请在您的 google+ 个人资料 URL 中添加。理想情况下,我可以跳过该步骤并预填充我的用户数据库,因为我只允许来自特定 google 应用程序域的人登录。

我想要的是一种从我的 google 应用程序域控制结构的某些元素生成像 'user 10110233402123 is bob@example.com' 这样的映射列表的方法,而不必在 OAUTH 登录期间捕获它舞蹈。理想情况下,这将来自域控制面板,但直接在控制面板中查找用户似乎不会公开该特定信息。

我认为您无法从控制面板中获取该信息,但您可以从 Directory API 中获取。

更具体地说,如果您使用 users.list() API 调用,您将检索您的用户列表(分页)。每个用户都会有一个 id 字段,这就是您要查找的内容。

这是典型的 users.list() API 响应。 admin two 的 ID 是 123456789.

{
 "kind": "directory#users",
 "users": [
  {
   "kind": "directory#user",
   "id": "123456789",
   "username": "admin2@example.com",
   "name": {
    "givenName": "admin",
    "familyName": "two",
    "fullName": "admin two"
   },
   "isAdmin": true,
   ...
 "nextPageToken": "NNNNN"
}

如果您不想拨打 API 电话,excellent tool GAM made by Ditto 允许您在 CSV 列表中列出用户,其中 ID 是您要查找的列。