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

Firebase Cloud Messaging测试:应使用何种Bearer令牌解决401认证错误?

解决FCM v1 API 401认证错误的方案

你遇到的问题核心是FCM v1 API和旧版Legacy HTTP API的认证机制完全不同——你用了旧版的Server Key来访问v1 API,这肯定会触发401错误,因为v1 API要求的是OAuth 2.0访问令牌,而不是原来的Server Key。下面给你两种可行的解决路径:

路径1:改用Legacy HTTP API(快速解决)

如果你只是想快速发送测试通知,不想折腾OAuth令牌,可以直接切换到旧版API:

  • 请求URL改为:https://fcm.googleapis.com/fcm/send
  • Authorization头格式调整为:key=[你的Server Key](注意不要加Bearer前缀)
  • Content-Type保持application/json不变
  • 请求体用旧版格式,比如:
    {
      "to": "[设备令牌]",
      "notification": {
        "title": "测试通知",
        "body": "这是一条测试消息"
      }
    }
    

路径2:获取OAuth 2.0访问令牌适配v1 API

如果坚持要用v1 API,你需要生成符合要求的OAuth访问令牌:

  1. 创建服务账号密钥:
    • 进入Firebase控制台 → 项目设置 → 服务账号 → 点击「生成新的私钥」,下载JSON格式的密钥文件。
  2. 生成访问令牌:
    • 最简单的方式是用Google Cloud SDK的gcloud命令行工具:
      1. 安装并初始化gcloud(登录你的Google账号关联到目标Firebase项目)
      2. 运行命令:gcloud auth application-default print-access-token
      3. 命令输出的字符串就是你需要的OAuth访问令牌
    • 也可以通过编程方式生成(比如用Google的OAuth客户端库),但gcloud方式最适合测试场景。
  3. 更新请求配置:
    • Authorization头保持Bearer [生成的OAuth令牌]格式
    • 确保请求体符合v1 API的格式要求,比如:
      {
        "message": {
          "token": "[设备令牌]",
          "notification": {
            "title": "测试通知",
            "body": "这是一条v1 API测试消息"
          }
        }
      }
      

另外要注意:OAuth访问令牌的有效期是1小时,过期后需要重新生成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:18:51