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

使用Curl通过Firebase Cloud Messaging发送纯数据推送通知遇问题

FCM纯数据推送问题解决指南

你的请求存在两个核心问题

1. 授权方式错误

FCM v1 API(你调用的https://fcm.googleapis.com/v1/projects/projectID/messages:send)不支持使用Server Key作为Authorization凭证,它要求使用OAuth 2.0访问令牌,这是你收到401「UNAUTHENTICATED」错误的直接原因。

2. JSON格式语法错误

你提供的请求体JSON存在语法错误:

  • message字段后直接跟"token",缺少冒号和正确的嵌套结构
  • data字段的位置错误,应该是message的子属性

解决步骤

一、获取所需的关键参数

1. Server Key(用于旧版FCM API)

在Firebase控制台进入项目设置 → 云消息传递,找到「服务器密钥」,这就是你需要的Authorization密钥。

2. 设备注册令牌(token)

需要在客户端集成FCM SDK后获取:

  • Android:调用FirebaseMessaging.getInstance().getToken()
  • iOS:调用Messaging.messaging().token(completion:)
  • Web:调用messaging.getToken({ vapidKey: "你的VAPID密钥" })

二、两种可行的推送方式

方式1:使用旧版Legacy HTTP API(更简单,适合快速测试)

这是最直接的方式,支持用Server Key授权,请求结构更简洁:

curl -X POST https://fcm.googleapis.com/fcm/send \
  -H "Content-Type: application/json" \
  -H "Authorization: key=你的Server Key" \
  -d '{
    "to": "你的设备token",
    "data": {
      "customData": "2dfs2"
    }
  }'

方式2:使用FCM v1 API(需OAuth 2.0令牌)

如果坚持用v1 API,需要先获取OAuth 2.0访问令牌(可通过服务账号密钥生成),然后构造正确的请求:

curl -X POST https://fcm.googleapis.com/v1/projects/你的项目ID/messages:send \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer 你的OAuth 2.0令牌" \
  -d '{
    "message": {
      "token": "你的设备token",
      "data": {
        "customData": "2dfs2"
      }
    }
  }'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:18:37