Maison >développement back-end >tutoriel php >Tutoriel : Utiliser Curl, APNS+FCM et d'autres extensions pour implémenter la fonction globale de transmission de messages des applications PHP

Tutoriel : Utiliser Curl, APNS+FCM et d'autres extensions pour implémenter la fonction globale de transmission de messages des applications PHP

WBOY
WBOYoriginal
2023-07-25 23:52:561521parcourir

Tutoriel : Utilisez Curl, APNS+FCM et d'autres extensions pour implémenter la fonction globale de transmission de messages des applications PHP

À l'ère numérique d'aujourd'hui, la fonction globale de transmission de messages est devenue une exigence essentielle de nombreuses applications. Qu'il s'agisse d'applications de réseaux sociaux, de plateformes de commerce électronique ou de clients d'information, ils doivent tous pouvoir envoyer des notifications en temps réel et envoyer des messages aux utilisateurs. Ce didacticiel expliquera comment utiliser les extensions PHP et Curl, APNS et FCM pour implémenter la fonctionnalité globale de transmission de messages.

Première étape : Préparation
Tout d'abord, assurez-vous que les extensions PHP et Curl sont installées sur votre serveur. Curl est un outil de communication avec les serveurs, et nous l'utiliserons pour envoyer des requêtes push aux services de messagerie push d'Apple et de Google. Vous pouvez installer l'extension Curl via la commande suivante :

sudo apt-get install php-curl

Ensuite, nous devons préparer les certificats et les clés requis pour APNS et FCM. APNS (Apple Push Notification Service) est utilisé pour envoyer des notifications push aux appareils Apple, tandis que FCM (Firebase Cloud Messaging) est utilisé pour envoyer des notifications push aux appareils Android.

Pour APNS, vous devez créer un certificat push sur le site Web du développeur Apple et télécharger le certificat sur votre serveur. Ensuite, vous devez utiliser la commande openssl pour convertir le certificat au format .p12 en un fichier au format .pem à utiliser en PHP. Convertissez le certificat .p12 en certificat .pem à l'aide de la commande suivante :

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

Pour FCM, vous devez créer un projet sur la console Firebase et obtenir un projet pour la clé du serveur pour l'authentification. Vous devez également installer l'extension PHP FCM. Vous pouvez installer l'extension PHP FCM via la commande suivante :

composer require brozot/laravel-fcm

Étape 2 : Écrire le code PHP
Ensuite, nous écrirons le code PHP pour implémenter la fonction globale de push de message. Nous utiliserons l'extension Curl pour envoyer des requêtes aux services push APNS et FCM.

Tout d'abord, nous devons introduire l'extension Curl en haut du fichier PHP :

...
// 引入Curl扩展
...

Ensuite, nous devons créer une fonction pour envoyer des requêtes push à APNS. Cette fonction recevra le jeton de l'appareil, le titre et le contenu (corps) du push comme paramètres, et enverra la requête push au serveur APNS :

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;

}

Suivant , nous devons créer une fonction pour envoyer des requêtes push au FCM. Cette fonction recevra le jeton de l'appareil, le titre et le contenu (corps) du push comme paramètres, et enverra la requête push au serveur FCM :

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 : Appeler des fonctions pour envoyer des requêtes push
Maintenant, nous pouvons appeler ces fonctions de requête push dans notre application PHP pour implémenter la fonction push de message global. Voici un exemple :

...
// 引入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;

De cette manière, nous avons implémenté avec succès la fonction globale de transmission de messages des applications PHP en utilisant les extensions Curl, APNS et FCM. Désormais, nous pouvons envoyer des notifications push et des messages push aux appareils Apple et Android.

Conclusion
Dans ce tutoriel, nous avons appris à utiliser des extensions telles que Curl, APNS et FCM pour implémenter la fonction globale de transmission de messages des applications PHP. Nous avons d'abord préparé l'environnement serveur requis et les clés de certificat et les avons intégrés au code PHP. Ensuite, nous avons écrit des fonctions qui envoyaient des requêtes push et avons effectivement appelé ces fonctions pour compléter la fonction globale de push de message. Grâce à ces connaissances et compétences, vous pouvez ajouter une puissante fonctionnalité de message push à votre application et améliorer l'expérience utilisateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn