使用Google API Explorer发FCM消息报THIRD_PARTY_AUTH_ERROR修复方法
FCM V1接口发送Web端消息报THIRD_PARTY_AUTH_ERROR修复方案
这个报错和你在Google API Explorer完成的OAuth2授权流程无关,错误触发点是FCM服务端尝试向Web Push服务下发消息时,第三方服务鉴权不通过。添加validate_only: true参数时请求能成功,是因为该模式仅校验请求格式和FCM侧权限,不会实际调用Web Push/APNS等第三方推送服务,自然不会触发这个错误。
按以下顺序排查修复:
- 校验Web端FCM令牌生成逻辑
Web端调用FCMgetToken方法获取注册令牌时,必须传入当前Firebase项目对应的VAPID公钥。如果生成令牌时未传VAPID公钥、传入了其他项目的公钥,Web Push服务会直接拒绝FCM的投递请求,返回鉴权错误。你可以打开Firebase控制台,进入「Cloud Messaging」-「设置」-「Web推送证书」页面,复制项目生成的公钥,替换前端代码里的VAPID配置后重新获取令牌测试。 - 补全Web Push专属请求字段
面向Web端令牌发消息时,不要仅传通用notification字段,建议显式添加webpush配置块,避免FCM投递时缺失必要鉴权头,参考正确请求结构:
{ "message": { "token": "前端最新获取的有效FCM令牌", "notification": { "title": "New Notification", "body": "Sample Text" }, "webpush": { "headers": { "Urgency": "normal" } } } }
- 确认OAuth权限范围勾选正确
在API Explorer的OAuth授权面板里,必须勾选https://www.googleapis.com/auth/firebase.messaging权限范围,仅勾选基础云平台权限即使完成授权弹窗,实际发消息时也会出现权限异常。 - 排除无效令牌问题
如果用户收回了站点通知权限、清除了浏览器站点数据、令牌超过有效期未刷新,原有FCM令牌会失效,重新在前端调用getToken获取最新令牌替换后重试即可。
注意:跨项目使用VAPID密钥、FCM令牌、服务端凭据都会触发这个第三方鉴权错误,测试时要确保所有配置都属于同一个Firebase项目。
内容的提问来源于stack exchange,提问作者John Netzel
相关产品推荐
相关产品推荐

