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

如何使用PHP cURL与FCM向移动设备推送通知?

如何用PHP cURL通过FCM向移动设备推送通知

嘿,这事儿不难,我给你一步步拆解,再补全你提供的代码,让它能直接用:

第一步:准备FCM服务器密钥

首先你得从Firebase控制台拿到服务器密钥——进入你的项目,找到「项目设置」→「云消息传递」,就能看到这个密钥,它是你请求FCM接口的身份凭证。

第二步:构建请求头和推送内容

你需要定义两个关键数组:$headers(请求头,包含授权信息和内容类型)和$fields(推送的具体内容,比如目标设备、通知标题、自定义数据)。

第三步:完整的PHP cURL代码示例

我把你给的代码补全了,加上了必要的参数定义,直接用就行:

<?php
// 替换成你的FCM服务器密钥
$serverKey = 'YOUR_FCM_SERVER_KEY';

// 目标设备的FCM令牌(或者主题,比如"/topics/news")
$deviceToken = 'TARGET_DEVICE_FCM_TOKEN';

// 构建请求头
$headers = [
    'Authorization: key=' . $serverKey,
    'Content-Type: application/json'
];

// 构建推送内容
$fields = [
    'to' => $deviceToken,
    'notification' => [
        'title' => '新通知',
        'body' => '这是一条来自PHP的FCM推送消息',
        'sound' => 'default' // 可选:通知音效
    ],
    'data' => [ // 可选:自定义数据,APP端可以解析这些内容
        'custom_key' => 'custom_value',
        'user_id' => 123
    ]
];

// 初始化cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 注意:生产环境建议开启SSL验证,这里为了测试暂时关闭
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));

// 执行请求并获取响应
$result = curl_exec($ch);

// 检查请求是否失败
if(curl_errno($ch)){
    echo 'cURL错误:' . curl_error($ch);
}

// 关闭cURL资源
curl_close($ch);

// 输出FCM的响应结果
echo $result;
?>

一些关键说明

  • to参数:可以是单个设备的FCM令牌,也可以是主题(比如/topics/global),或者用registration_ids数组推送多个设备。
  • notification字段:控制通知的显示内容,比如标题、正文、图标等,这些会直接在设备通知栏显示。
  • data字段:自定义的业务数据,APP端可以在接收到通知后解析这些数据做进一步处理。
  • 生产环境建议开启CURLOPT_SSL_VERIFYPEER为true,保证请求的安全性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:08:06