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

如何获取用户街道地址?授权后调用Google People API未返回地址

解决Google People API无法返回街道地址的问题

以下是几个排查和解决方向:

1. 确认Google账户有已填写的地址

先检查你的Google账户「个人信息」里的「联系信息」→「地址」是否有已保存的街道地址。如果账户里根本没填,API自然拿不到数据。

2. 确保授权时用户同意了地址权限

你的授权代码里虽然加了https://www.googleapis.com/auth/user.addresses.read,但要确认用户在授权弹窗里确实勾选了「查看您的地址」权限:

  • 重新触发授权流程,因为你设置了prompt: "consent",会强制弹出权限确认框,仔细检查权限列表。
  • 如果之前用户授权时没选这个权限,prompt: "consent"会让用户重新确认所有权限,确保地址权限被同意。

3. 调整API请求的地址字段参数

调用People API时,默认可能不会返回所有地址细节,需要明确指定要获取的地址字段:
修改请求URL,明确请求地址的具体字段:

const json = await (await fetch("https://people.googleapis.com/v1/people/me?personFields=birthdays,genders,addresses&addresses=formattedValue,streetAddress,city,region,postalCode", {
  headers: {
    Authorization: `Bearer ${authData.access_token}`
  }
})).json();

或者用addresses=*请求所有地址相关字段:

const json = await (await fetch("https://people.googleapis.com/v1/people/me?personFields=birthdays,genders,addresses&addresses=*", {
  headers: {
    Authorization: `Bearer ${authData.access_token}`
  }
})).json();

4. 验证Access Token的权限范围

检查当前Access Token是否真的包含地址读取权限:

const tokenInfo = await (await fetch(`https://oauth2.googleapis.com/tokeninfo?access_token=${authData.access_token}`)).json();
console.log(tokenInfo.scope); // 查看输出是否包含https://www.googleapis.com/auth/user.addresses.read

如果输出里没有这个权限,说明授权流程有问题,需要重新走授权。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 06:00:10