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

基于OAuth的Google Home账号绑定实现疑问及报错求解

问题1

code由开发者侧生成。你需要在用户完成自身平台的账号登录、确认授权后生成该临时授权码,code仅可使用一次,有效期建议控制在10分钟以内,后续Google会携带该code请求你的Token接口交换令牌。

问题2

access_token和refresh_token均由开发者侧生成。

  • access_token是Google后续请求你的智能家居业务接口(SYNC/QUERY/EXECUTE等)时携带的身份凭证,你需要自行校验该token的合法性以及对应的用户身份。
  • refresh_token用于access_token过期后,Google无需用户重新授权即可主动调用你的Token接口刷新获取新的access_token。

问题3

仅返回这四个参数仅满足令牌交换的基础返回要求,还需要满足以下规则才算完成完整的令牌交换环节:

  • 接口响应头的Content-Type必须明确为application/json
  • expires_in必须返回数字类型,你当前代码返回的是字符串类型的"3600",属于格式错误,需要修改为整型3600
  • 首次用授权码换令牌时需要同时返回四个参数,后续用户用refresh_token刷新令牌时不需要返回refresh_token(除非你需要更换refresh_token)
  • 你需要自行维护code、access_token、refresh_token和相应用户身份的关联关系,后续接口请求过来时可以识别对应的用户。

问题4

该报错json_response_invalid_format不是OAuth绑定环节的错误,是账号绑定完成后,Google主动调用你配置的智能家居Fulfillment接口发起SYNC同步请求时,你返回的响应格式不符合Google要求导致的。
解决方法:

  • 检查你配置的智能家居业务接口是否可以正常接收Google的POST请求
  • 严格按照Google SYNC接口规范构造响应,必须包含requestId、payload两个顶级字段,payload下必须包含agentUserId、devices等必填字段
  • 检查接口响应头Content-Type是否为application/json
  • 校验返回的JSON没有语法错误,没有缺失必填字段或者多余的非法字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 04:15:03