J'autorise les utilisateurs à envoyer des notifications via mon site Web. Les notifications fonctionnent, cependant, je voudrais un moyen de confirmer réellement si la notification a été envoyée (dans le code), ou si cela n'est pas possible au moins la confirmation que le curl a fonctionné, ainsi je peux montrer un message sur mon site Web il a réussi ou échoué. Dans ma requête jquery post, le statut semble toujours être "réussi", même si je fournis un API_ACCESS_KEY invalide dans mon php (donc il est évident qu'il n'envoie pas la notification mais il dit toujours le succès). Comment puis-je savoir avec certitude que la notification a été envoyée? Reconnaissant pour toute aide.Comment puis-je confirmer que la notification Firebase a bien été envoyée (fcm)?
Voici ma demande de poste à index.html:
$("#send-button").click(function(){
if($("#send").val().length == 0) {
return;
} else {
$.post("php/send-notification.php",
{
notification_message: $("#send").val()
},
function(data, status) {
alert("Data: " + data + "\nStatus: " + status);
// status seems to always be "success" even with an invalid API_ACCESS_KEY
});
}
});
Voici send-notification.php:
<?php
define('API_ACCESS_KEY', 'AAA....AAA');
$msg = array
(
'body' => $_POST['notification_message'],
'vibrate' => 1,
'sound' => 1,
'badge' => 1
);
$fields = array
(
'to' => "/topics/global",
'notification' => $msg,
'priority' => 'high'
);
$headers = array
(
'Authorization: key=' . API_ACCESS_KEY,
'Content-Type: application/json'
);
$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);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($ch);
curl_close($ch);
?>
Vérifiez-vous la valeur de '$ result' n'importe où? Vous devriez vérifier le code de réponse HTTP, et si c'est 200, vous devriez vérifier le corps de la réponse. – Eran
Je suis un peu confus de ce que cela signifie mais quand j'essaye d'echo $ result, il n'y a rien (même si la notification fonctionne et est envoyée aux périphériques). –
if ($ resultat = curl_exec ($ ch)) echo "travaillé"; cela semble toujours retourner vrai, même lorsque je mets un mauvais API_ACCESS_KEY –