Tutorial: Gunakan Curl, APNS+FCM dan sambungan lain untuk melaksanakan fungsi push mesej global aplikasi PHP

WBOY
Lepaskan: 2023-07-26 06:12:01
asal
1481 orang telah melayarinya

Tutorial: Gunakan Curl, APNS+FCM dan sambungan lain untuk melaksanakan fungsi tolak mesej global aplikasi PHP

Dalam era digital hari ini, fungsi tolak mesej global telah menjadi keperluan teras bagi banyak aplikasi. Sama ada aplikasi media sosial, platform e-dagang atau pelanggan berita, mereka semua perlu boleh menghantar pemberitahuan masa nyata dan menolak mesej kepada pengguna. Tutorial ini akan memperkenalkan cara menggunakan sambungan PHP dan Curl, APNS dan FCM untuk melaksanakan fungsi push mesej global.

Langkah Pertama: Penyediaan
Pertama, pastikan sambungan PHP dan Curl dipasang pada pelayan anda. Curl ialah alat untuk berkomunikasi dengan pelayan dan kami akan menggunakannya untuk menghantar permintaan tolak kepada perkhidmatan pemesejan tolak Apple dan Google. Anda boleh memasang sambungan Curl melalui arahan berikut:

sudo apt-get install php-curl

Seterusnya, kami perlu menyediakan sijil dan kunci yang diperlukan untuk APNS dan FCM. APNS (Apple Push Notification Service) digunakan untuk menghantar pemberitahuan push ke peranti Apple, manakala FCM (Firebase Cloud Messaging) digunakan untuk menghantar pemberitahuan push ke peranti Android.

Untuk APNS, anda perlu membuat sijil tolak di tapak web pembangun Apple dan memuat turun sijil ke pelayan anda. Kemudian, anda perlu menggunakan arahan openssl untuk menukar sijil format .p12 kepada fail format .pem untuk digunakan dalam PHP. Tukar sijil .p12 kepada sijil .pem menggunakan arahan berikut:

openssl pkcs12 -in cert.p12 -out cert.pem -nodes

Untuk FCM, anda perlu membuat projek pada konsol Firebase dan mendapatkan projek untuk kunci pelayan untuk pengesahan. Anda juga perlu memasang sambungan PHP FCM. Anda boleh memasang sambungan PHP FCM melalui arahan berikut:

komposer memerlukan brozot/laravel-fcm

Langkah 2: Tulis kod PHP
Seterusnya, kami akan menulis kod PHP untuk melaksanakan fungsi push mesej global. Kami akan menggunakan sambungan Curl untuk menghantar permintaan kepada perkhidmatan tolak APNS dan FCM.

Mula-mula, kita perlu memperkenalkan sambungan Curl di bahagian atas fail PHP:

...
// 引入Curl扩展
...
Salin selepas log masuk

Kemudian, kita perlu mencipta fungsi untuk menghantar permintaan tolak ke APNS. Fungsi ini akan menerima token peranti, tajuk tekan dan kandungan (badan) sebagai parameter, dan menghantar permintaan tolak ke pelayan APNS:

fungsi sendAPNSPush($token, $title, $body) {

// 创建推送通知数组
$data = [
    'aps' => [
        'alert' => [
            'title' => $title,
            'body' => $body,
        ],
        'sound' => 'default'
    ]
];

// 加载.pem证书文件
$cert = __DIR__ . '/cert.pem';
$passphrase = 'your_certificate_passphrase';

// 创建Curl实例
$ch = curl_init();

// 设置Curl选项
curl_setopt($ch, CURLOPT_URL, 'https://api.development.push.apple.com/3/device/' . $token);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $cert . ':' . $passphrase,
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

// 执行Curl请求
$result = curl_exec($ch);

// 关闭Curl实例
curl_close($ch);

// 返回结果
return $result;
Salin selepas log masuk

}

Seterusnya , kita perlu mencipta fungsi untuk menghantar permintaan tolak kepada FCM. Fungsi ini akan menerima token peranti, tajuk tolak dan kandungan (badan) sebagai parameter, dan menghantar permintaan tolak ke pelayan FCM:

fungsi sendFCMPush($token, $title, $body) {

// 创建推送通知数组
$data = [
    'notification' => [
        'title' => $title,
        'body' => $body,
    ],
    'to' => $token,
];

// 创建Curl实例
$ch = curl_init();

// 设置Curl选项
curl_setopt($ch, CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: key=your_fcm_server_key',
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// 执行Curl请求
$result = curl_exec($ch);

// 关闭Curl实例
curl_close($ch);

// 返回结果
return $result;
Salin selepas log masuk

}

Langkah 3: Fungsi panggilan untuk menghantar permintaan tolak

Kini, kita boleh memanggil fungsi permintaan tolak ini dalam aplikasi PHP kami untuk melaksanakan fungsi tolak mesej global. Berikut ialah contoh:

...
// 引入Curl扩展和APNS、FCM发送函数
...

// 设备令牌
$deviceToken = 'xxxxx';
// 推送标题
$pushTitle = '消息推送';
// 推送内容
$pushBody = '你收到一条新的消息';

// 发送APNS推送
$apnsResult = sendAPNSPush($deviceToken, $pushTitle, $pushBody);

// 发送FCM推送
$fcmResult = sendFCMPush($deviceToken, $pushTitle, $pushBody);

// 输出结果
echo 'APNS推送结果:' . $apnsResult;
echo 'FCM推送结果:' . $fcmResult;
Salin selepas log masuk
Dengan cara ini, kami telah berjaya melaksanakan fungsi push mesej global aplikasi PHP menggunakan sambungan Curl, APNS dan FCM. Kini, kami boleh menghantar pemberitahuan tolak dan mesej tolak ke peranti Apple dan peranti Android.

Kesimpulan

Dalam tutorial ini, kami mempelajari cara menggunakan sambungan seperti Curl, APNS dan FCM untuk melaksanakan fungsi push mesej global aplikasi PHP. Kami mula-mula menyediakan persekitaran pelayan yang diperlukan dan kunci sijil dan menyepadukannya dengan kod PHP. Kemudian, kami menulis fungsi yang menghantar permintaan tolak dan sebenarnya memanggil fungsi ini untuk melengkapkan fungsi tolak mesej global. Dengan pengetahuan dan kemahiran ini, anda boleh menambah fungsi mesej tolak yang berkuasa pada aplikasi anda dan meningkatkan pengalaman pengguna.

Atas ialah kandungan terperinci Tutorial: Gunakan Curl, APNS+FCM dan sambungan lain untuk melaksanakan fungsi push mesej global aplikasi PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan