我们正在从 HTTP 旧版 API 迁移到 Firebase 云消息传递 (FCM) 的 HTTP V1 API。根据文档,我们遵循了所有步骤,创建服务帐户 JSON 文件,使用服务帐户 JSON 文件(带有 Java 代码)获取短期身份验证令牌,然后使用 FCM REST API 调用发送通知。
Java 代码工作得很好并返回访问令牌。在授权部分中传递相同的令牌作为“Bearer +accessToken”,但我们收到“IAM_PERMISSION_DENIED”错误。
下面是我们用来调用 REST API 的示例请求/响应参数。
HTTP 发布网址:https://fcm.googleapis.com/v1/projects/mt-middleware-****/messages:send
授权:承载“accessToken” 要求: { “信息”: { "token": "********",//设备令牌 “通知”: { "body": "这是一条 FCM 通知消息!", "title": "FCM 消息" } } }
回应: { “错误”: { “代码”:403, "message": "资源 '//cloudresourcemanager.googleapis.com/projects/mt-middleware-' 的权限 'cloudmessaging.messages.create' 被拒绝(或者它可能不存在)。", “状态”:“PERMISSION_DENIED”, “细节”: [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", “原因”:“IAM_PERMISSION_DENIED”, “域名”:“cloudresourcemanager.googleapis.com”, “元数据”:{ “资源”:“项目/mt-middleware-”, "permission": "cloudmessaging.messages.create" } } ] } }
我们也尝试为所有者启用 Firebase 管理员角色。但这没有帮助。请指导是否需要在 Firebase 控制台页面启用任何其他附加权限?