You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从邮箱地址获取Google用户ID以调用Google People API获取Gmail头像?

嘿,刚好我对Google API这块踩过不少坑,给你两个实用的方案来解决通过邮箱获取用户ID的问题:

方案1:直接用Google People API(通用场景)

其实你完全不用换API——Google People API本身就支持通过邮箱地址获取用户ID,刚好能衔接你后续拿头像的需求。具体操作步骤:

  • 先确保你的应用已经获取了合适的OAuth2权限范围,比如https://www.googleapis.com/auth/contacts.readonly(用于查询联系人)或者更宽泛的https://www.googleapis.com/auth/userinfo.profile(用于获取已授权用户的信息)。
  • 调用people.get接口时,把resourceName参数设置为people/email:{目标邮箱地址},比如people/email:john.doe@gmail.com。
  • 接口返回的响应里,resourceName字段会是类似people/1234567890abcdef的格式,斜杠后面的字符串就是你要的用户ID。

举个curl请求的示例:

curl "https://people.googleapis.com/v1/people/email:john.doe@gmail.com?personFields=metadata" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

返回结果里的metadata.source.id就是用户ID,直接拿来用就行。

方案2:Google Workspace Admin Directory API(仅限Workspace域管理员)

如果你的应用是服务于Google Workspace(原G Suite)域的管理员,那用Directory API会更直接:

  • 需要授权https://www.googleapis.com/auth/admin.directory.user.readonly这个权限范围。
  • 调用users.get接口,把userKey参数设为目标邮箱地址,就能直接拿到包含用户ID的完整用户信息。

示例请求:

curl "https://admin.googleapis.com/admin/directory/v1/users/john.doe@yourdomain.com" \
  -H "Authorization: Bearer YOUR_ADMIN_ACCESS_TOKEN"

响应里的id字段就是你需要的用户ID,而且还能顺带拿到其他域用户的信息。

关键注意事项
  • 对于People API:如果要查询的用户不在当前授权用户的联系人列表里,可能会返回权限错误,这时候需要确保你有足够的权限,或者目标用户已经授权你的应用访问他们的信息。
  • 对于Directory API:只能查询你所管理的Workspace域内的用户,无法查询外部的普通Gmail用户。

内容的提问来源于stack exchange,提问作者go4cas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:38:19