向Google上报智能家居设备状态报403缺失有效API密钥问题排查
问题排查结论
1. 报错核心原因定位
你遇到的The request is missing a valid API key报错和agentUserId无关,你的请求体中的agentUserId: "user-123"格式合法,不会触发该类403错误,问题出在凭证获取/传递环节:
- 首先你的token获取逻辑存在基础错误:你当前用于换取access token的请求地址填写错误,你用的
https://www.googleapis.com/auth/homegraph是权限范围(scope)的取值,不是OAuth 2.0 凭证交换的接口地址,正确的token交换地址为https://oauth2.googleapis.com/token,该错误会直接导致你无法获取到合法的访问凭证。 - 确认换取token的JWT payload配置正确,必须包含
scope: https://www.googleapis.com/auth/homegraph字段,同时确认你使用的服务账号没有被禁用、已授予Home Graph相关操作权限。
2. 上报请求校验
拿到有效token后,需将其放在请求头中传递,格式为Authorization: Bearer {实际token字符串},不要将token放在请求参数中,传值位置错误也会触发无有效API密钥的报错。
3. 快速验证方法
你可以将获取到的token通过curl命令直接测试上报接口,确认有效性:
curl -X POST \ -H "Authorization: Bearer 替换为你获取到的token" \ -H "Content-Type: application/json" \ -d '{"requestId": "123ABC","agentUserId": "user-123","payload": {"devices": {"states": {"light-123": {"on": true}}}}' \ https://homegraph.googleapis.com/v1/devices:reportStateAndNotification
如果测试仍返回相同报错,说明token本身无效,优先排查token获取逻辑即可。
内容的提问来源于stack exchange,提问作者east
相关产品推荐
相关产品推荐

