Azure Notification Hubs FCM V1配置测试发送遇无效凭证错误求助
Azure Notification Hub FCM V1 无效凭证问题排查方案
1. 检查Google服务账号权限
- 得确认生成JSON密钥的服务账号拥有
Firebase Cloud Messaging Admin角色,别用普通的Editor或Viewer权限。去Google Cloud IAM页面找到该账号,查看角色分配,没有的话及时添加。 - 同时确认这个服务账号处于启用状态,未被禁用。
2. 核对Azure配置的参数细节
- 重新检查Azure门户中FCM V1的三个核心参数:
project-id:必须和Google Cloud项目ID完全一致,大小写、空格都不能出错,别多打或少打字符。client_email:要复制JSON文件里的client_email字段,不是账号的显示名称。private_key:完整复制,包括开头的-----BEGIN PRIVATE KEY-----和结尾的-----END PRIVATE KEY-----,一行都不能漏,首尾也别加多余空格。
3. 确认Firebase API状态和配额
- 再去Google Cloud控制台确认
Firebase Messaging API确实已启用,然后查看配额页面,有没有请求被拒绝的记录。要是配额不足,得申请调整。 - 顺便检查API凭据页面中,该服务账号的密钥是否有效,没有被删除或过期。
4. 验证设备注册的正确性
- 确认通过新SDK创建的FCM V1设备注册记录里,
PnsHandle是有效的FCM V1令牌,不是旧的GCM令牌。可以在Azure的设备注册列表里查看,或者在客户端打印令牌确认格式。 - 还要注意注册时指定的是FCM V1平台,别和旧的GCM配置混用。
5. 排查网络和权限限制
- 确认Azure Notification Hub所在区域能正常访问FCM V1的API端点
https://fcm.googleapis.com/v1/projects/{project-id}/messages:send。如果有企业防火墙或VNet限制,得放开这个出站流量。 - 如果Google Cloud项目开启了VPC服务控制,得把Azure的IP范围加入允许列表,或者暂时关闭该控制进行测试。
6. 直接测试FCM V1 API
- 用Postman或curl直接调用FCM V1 API,用同一个服务账号密钥发送测试消息,先确认凭证本身是否有效:
- 用服务账号密钥生成OAuth2访问令牌,调用Google的token端点
https://oauth2.googleapis.com/token,grant_type设为urn:ietf:params:oauth:grant-type:jwt-bearer。 - 用生成的令牌调用FCM发送接口,要是成功,问题就出在Azure配置;要是失败,就回到Google服务账号或密钥的问题上排查。
- 用服务账号密钥生成OAuth2访问令牌,调用Google的token端点
内容的提问来源于stack exchange,提问作者Tristan Boland
相关产品推荐
相关产品推荐

