FCM API V1是否支持通过Curl向多设备发送推送消息?
Firebase Cloud Messaging API (V1) 多设备消息发送(Curl方式)
可以的,FCM API (V1)完全支持通过Curl向多个设备发送消息,不需要依赖旧版的Legacy API。主要有两种实用的实现方式:
1. 用tokens数组批量推送(单次最多500个设备)
直接把请求体里单个的token字段换成tokens数组,就能一次性给多个设备发消息,用法和Legacy的多token推送逻辑类似。
示例请求体:
{ "message": { "tokens": [ "设备Token_1", "设备Token_2", "设备Token_3" ], "notification": { "body": "This is an FCM notification message!", "title": "FCM Message" } } }
对应的Curl命令:
curl -X POST "https://fcm.googleapis.com/v1/projects/你的项目ID/messages:send" \ -H "Authorization: Bearer 你的访问令牌" \ -H "Content-Type: application/json" \ -d '{ "message": { "tokens": ["设备Token_1", "设备Token_2"], "notification": { "body": "This is an FCM notification message!", "title": "FCM Message" } } }'
2. 超量设备用sendAll接口批量发送(单次最多1000个设备)
如果要推送的设备超过500个,就得用sendAll接口,把每个设备的消息单独放在messages数组里,一次最多处理1000条消息条目。
示例请求体:
{ "messages": [ { "token": "设备Token_1", "notification": { "body": "批量推送通知内容", "title": "批量FCM消息" } }, { "token": "设备Token_2", "notification": { "body": "批量推送通知内容", "title": "批量FCM消息" } } ] }
对应的Curl命令:
curl -X POST "https://fcm.googleapis.com/v1/projects/你的项目ID/messages:sendAll" \ -H "Authorization: Bearer 你的访问令牌" \ -H "Content-Type: application/json" \ -d '{ "messages": [ { "token": "设备Token_1", "notification": { "body": "批量推送通知内容", "title": "批量FCM消息" } }, { "token": "设备Token_2", "notification": { "body": "批量推送通知内容", "title": "批量FCM消息" } } ] }'
注意事项:
- 访问令牌需要通过Firebase服务账号密钥生成,可使用gcloud工具或手动JWT签名获取
tokens字段单次上限500个设备,超量必须用sendAll接口- 两种方式都支持添加自定义业务数据,只需在
message节点下增加data字段即可
内容的提问来源于stack exchange,提问作者Vans
相关产品推荐
相关产品推荐

