Google Actions账号解绑时无webhook回调问题咨询
Google Assistant 账号解绑无webhook回调问题解决方案
这是Google Assistant Account Linking流程的已知设计行为:模拟器环境下的解绑操作仅会清除本地模拟器的绑定状态,不会触发正式的撤权回调请求,仅生产环境的用户解绑操作会向配置的webhook推送通知。
可行解决方案
- 先完成生产环境配置校验
确认Actions Console的Account Linking配置页中已正确填写撤权回调地址(Token revocation endpoint)和客户端秘钥(Client Secret),两项配置任意缺失都会导致生产环境也无法收到回调。生产环境下用户从Google账号中心解绑你的服务后,Google会向该地址发起POST请求,携带需撤销的refresh token/access token,你侧接收后清理对应账号的绑定状态即可完成状态同步。 - 模拟器调试替代方案
手动构造撤权请求调试本地逻辑,请求参数参考如下:
你可以用curl、Postman等工具直接发送该请求,验证本地解绑逻辑的正确性。POST <你的撤权回调地址> Headers: Content-Type: application/x-www-form-urlencoded Authorization: Basic <base64编码的Client ID:Client Secret> Body: token=<用户绑定后下发的refresh_token值> token_type_hint=refresh_token - 新增令牌有效性校验兜底逻辑
在每次处理Google Assistant发起的业务请求前,先校验请求携带的access token有效性:如果Google侧已解绑,该令牌调用Google token校验接口时会返回无效状态,此时你可以直接清理对应账号的绑定关系,同时返回401 Unauthorized响应,Google端收到该状态码后会自动引导用户重新完成账号绑定,不会影响正常业务流程。 - 定期清理无效绑定数据
可以按业务需要设置定时任务,扫描超过30天无活跃请求的绑定记录,主动触发令牌校验,确认无效后清理绑定状态,降低两边状态不一致的存量数据占比。
内容的提问来源于stack exchange,提问作者user2206676
相关产品推荐
相关产品推荐

