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

Firebase Cloud Messaging REST API返回INVALID_KEY(401)错误求助

解决Firebase推送Postman请求返回INVALID_KEY(401)的问题

问题本质

你误用了Web Push公私钥——这组密钥是给前端订阅推送时用于加密通信的,不是调用FCM(Firebase Cloud Messaging)API的身份验证凭证,所以会触发401 INVALID_KEY错误。

正确的密钥类型及获取方式

你需要用以下两类密钥之一来验证FCM API请求:

1. 服务器密钥(Server Key)/ Cloud Messaging API密钥

获取路径:

  • 打开Firebase控制台 → 进入目标项目 → 点击左侧菜单的「项目设置」→ 切换到「云消息传递」标签页
  • 在该页面找到「服务器密钥」(或标注为「Cloud Messaging API (Legacy)」的密钥),复制即可。

2. 服务账号密钥(用于生成JWT令牌,适用于更安全的生产场景)

获取及使用步骤:

  • 进入Firebase控制台 → 项目设置 → 「服务账号」标签页 → 点击「生成新的私钥」,下载JSON格式的密钥文件
  • 用该文件生成JWT令牌(签名算法选RS256,audience设为https://fcm.googleapis.com/,有效期不要超过1小时)
  • 请求时将JWT放在Authorization头,格式为Bearer <生成的JWT>

Postman请求的正确配置

以服务器密钥为例:

  1. 请求URL:https://fcm.googleapis.com/fcm/send
  2. 请求方法:POST
  3. 请求头:
    • Content-Type: application/json
    • Authorization: key=<你的服务器密钥>
  4. 请求体示例(JSON格式):
    {
      "to": "<设备的推送令牌registration token>",
      "notification": {
        "title": "自定义通知标题",
        "body": "自定义通知内容"
      }
    }
    

你之前的操作问题总结

  • 混淆了Web Push密钥与FCM API密钥的用途:Web Push公私钥仅用于前端pushManager.subscribe()订阅推送时,和FCM建立加密通道,不能用于后端API的身份验证。
  • 错误地将Web Push密钥放入API请求的Authorization头,导致FCM无法识别该密钥的合法性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 15:54:15