Heim >Backend-Entwicklung >PHP-Tutorial >Tutorial: Verwenden Sie Curl, APNS+FCM und andere Erweiterungen, um die globale Nachrichten-Push-Funktion von PHP-Anwendungen zu implementieren
Tutorial: Verwenden Sie Curl, APNS+FCM und andere Erweiterungen, um die globale Nachrichten-Push-Funktion von PHP-Anwendungen zu implementieren
Im heutigen digitalen Zeitalter ist die globale Nachrichten-Push-Funktion zu einer Kernanforderung vieler Anwendungen geworden. Ob Social-Media-Anwendungen, E-Commerce-Plattformen oder News-Clients: Sie alle müssen in der Lage sein, Echtzeitbenachrichtigungen und Push-Nachrichten an Benutzer zu senden. In diesem Tutorial erfahren Sie, wie Sie PHP- und Curl-, APNS- und FCM-Erweiterungen verwenden, um die globale Nachrichten-Push-Funktionalität zu implementieren.
Schritt eins: Vorbereitung
Stellen Sie zunächst sicher, dass PHP- und Curl-Erweiterungen auf Ihrem Server installiert sind. Curl ist ein Tool zur Kommunikation mit Servern und wir werden es verwenden, um Push-Anfragen an die Push-Messaging-Dienste von Apple und Google zu senden. Sie können die Curl-Erweiterung über den folgenden Befehl installieren:
sudo apt-get install php-curl
Als nächstes müssen wir die für APNS und FCM erforderlichen Zertifikate und Schlüssel vorbereiten. APNS (Apple Push Notification Service) wird zum Senden von Push-Benachrichtigungen an Apple-Geräte verwendet, während FCM (Firebase Cloud Messaging) zum Senden von Push-Benachrichtigungen an Android-Geräte verwendet wird.
Für APNS müssen Sie ein Push-Zertifikat auf der Apple-Entwickler-Website erstellen und das Zertifikat auf Ihren Server herunterladen. Anschließend müssen Sie den Befehl openssl verwenden, um das Zertifikat im .p12-Format in eine Datei im .pem-Format zur Verwendung in PHP zu konvertieren. Konvertieren Sie das .p12-Zertifikat mit dem folgenden Befehl in ein .pem-Zertifikat:
openssl pkcs12 -in cert.p12 -out cert.pem -nodes
Für FCM müssen Sie ein Projekt auf der Firebase-Konsole erstellen und ein Projekt abrufen für Serverschlüssel zur Authentifizierung. Sie müssen außerdem die FCM-PHP-Erweiterung installieren. Sie können die FCM-PHP-Erweiterung über den folgenden Befehl installieren:
composer require brozot/laravel-fcm
Schritt 2: PHP-Code schreiben
Als nächstes schreiben wir PHP-Code, um die globale Nachrichten-Push-Funktion zu implementieren. Wir werden die Curl-Erweiterung verwenden, um Anfragen an die APNS- und FCM-Push-Dienste zu senden.
Zuerst müssen wir die Curl-Erweiterung oben in der PHP-Datei einführen:
... // 引入Curl扩展 ...
Dann müssen wir eine Funktion erstellen, um Push-Anfragen an APNS zu senden. Diese Funktion empfängt das Token des Geräts, den Push-Titel und den Inhalt (Body) als Parameter und sendet die Push-Anfrage an den APNS-Server:
function 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;
}
Next , müssen wir eine Funktion erstellen, um Push-Anfragen an FCM zu senden. Diese Funktion empfängt das Token des Geräts, den Push-Titel und den Inhalt (Body) als Parameter und sendet die Push-Anfrage an den FCM-Server:
function 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;
}
Step 3: Funktionen zum Senden von Push-Anfragen aufrufen
Jetzt können wir diese Push-Anfragefunktionen in unserer PHP-Anwendung aufrufen, um die globale Nachrichten-Push-Funktion zu implementieren. Hier ist ein Beispiel:
... // 引入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;
Auf diese Weise haben wir die globale Nachrichten-Push-Funktion von PHP-Anwendungen mithilfe von Curl-, APNS- und FCM-Erweiterungen erfolgreich implementiert. Jetzt können wir Push-Benachrichtigungen und Push-Nachrichten an Apple-Geräte und Android-Geräte senden.
Fazit
In diesem Tutorial haben wir gelernt, wie man Erweiterungen wie Curl, APNS und FCM verwendet, um die globale Nachrichten-Push-Funktion von PHP-Anwendungen zu implementieren. Wir haben zunächst die erforderliche Serverumgebung und Zertifikatsschlüssel vorbereitet und diese in den PHP-Code integriert. Dann haben wir Funktionen geschrieben, die Push-Anfragen sendeten, und diese Funktionen tatsächlich aufgerufen, um die globale Nachrichten-Push-Funktion zu vervollständigen. Mit diesen Kenntnissen und Fähigkeiten können Sie Ihrer Anwendung leistungsstarke Push-Nachrichtenfunktionen hinzufügen und die Benutzererfahrung verbessern.
Das obige ist der detaillierte Inhalt vonTutorial: Verwenden Sie Curl, APNS+FCM und andere Erweiterungen, um die globale Nachrichten-Push-Funktion von PHP-Anwendungen zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!