如何在 PHP 中使用 fcm(firebase 控制台)向 iphone 发送推送通知?
how to send push notifications to iphone using fcm(firebase console) in PHP?
从 firebase 控制台发送通知时,通知工作正常。
我在 ios 设备上收到推送通知。
这是我使用 FCM 向 php 中的 iphone 发送推送通知的代码..
<?php $ch = curl_init("https://fcm.googleapis.com/fcm/send");
//The device token.
$token = "";
//Title of the Notification.
$title = "Carbon";
//Body of the Notification.
$body = "Bear island knows no king but the king in the north, whose name is stark.";
//Creating the notification array.
$notification = array('title' =>$title , 'text' => $body);
//This array contains, the token and the notification. The 'to' attribute stores the token.
$arrayToSend = array('to' => $token, 'notification' => $notification);
//Generating JSON encoded string form the above array.
$json = json_encode($arrayToSend);
//Setup headers:
$headers = array();
$headers[] = 'Content-Type: application/json';
$headers[] = 'Authorization: key= abcdgfdk'; //server key here
//Setup curl, add headers and post parameters.
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
//Send the request
$response = curl_exec($ch);
//Close request
curl_close($ch);
return $response; ?>
它 returns 以下响应:
{"multicast_id":7847791275395796141,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1473926169782959%51b989d251b989d2"}]}
请告诉我我做错了什么?我也对 android 使用相同的代码及其服务器密钥和设备令牌,并且工作正常...
似乎return成功了。也许检查您的应用程序注册码以查看 phone 的令牌是否已更改。有时会生成一个新的令牌。
谢谢 shubank ..你的答案有效...我唯一需要添加的是优先级高...这是更新后的代码...它也可以帮助别人 :)
$ch = curl_init("https://fcm.googleapis.com/fcm/send");
//The device token.
$token = ""; //token here
//Title of the Notification.
$title = "Carbon";
//Body of the Notification.
$body = "Bear island knows no king but the king in the north, whose name is stark.";
//Creating the notification array.
$notification = array('title' =>$title , 'text' => $body);
//This array contains, the token and the notification. The 'to' attribute stores the token.
$arrayToSend = array('to' => $token, 'notification' => $notification,'priority'=>'high');
//Generating JSON encoded string form the above array.
$json = json_encode($arrayToSend);
//Setup headers:
$headers = array();
$headers[] = 'Content-Type: application/json';
$headers[] = 'Authorization: key= $key'; // key here
//Setup curl, add headers and post parameters.
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
//Send the request
$response = curl_exec($ch);
//Close request
curl_close($ch);
return $response;
这是我测试过的代码,运行良好。确保传递 fcm 令牌
$path_to_firebase_cm = 'https://fcm.googleapis.com/fcm/send';
$token=array($token);
$fields = array(
'registration_ids' => $token,
'priority' => 10,
'data'=>$send_notification ,
'notification' => array('title' => $type_of_notification, 'body' => $title ,'sound'=>'Default'),
);
$headers = array(
'Authorization:key=' .'your server key' ,
'Content-Type:application/json'
);
// Open connection
$ch = curl_init('https://fcm.googleapis.com/fcm/send');
// Set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL, $path_to_firebase_cm);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
// Execute post
$result = curl_exec($ch);
// Close connection
curl_close($ch);
return $result;
从 firebase 控制台发送通知时,通知工作正常。
我在 ios 设备上收到推送通知。
这是我使用 FCM 向 php 中的 iphone 发送推送通知的代码..
<?php $ch = curl_init("https://fcm.googleapis.com/fcm/send");
//The device token.
$token = "";
//Title of the Notification.
$title = "Carbon";
//Body of the Notification.
$body = "Bear island knows no king but the king in the north, whose name is stark.";
//Creating the notification array.
$notification = array('title' =>$title , 'text' => $body);
//This array contains, the token and the notification. The 'to' attribute stores the token.
$arrayToSend = array('to' => $token, 'notification' => $notification);
//Generating JSON encoded string form the above array.
$json = json_encode($arrayToSend);
//Setup headers:
$headers = array();
$headers[] = 'Content-Type: application/json';
$headers[] = 'Authorization: key= abcdgfdk'; //server key here
//Setup curl, add headers and post parameters.
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
//Send the request
$response = curl_exec($ch);
//Close request
curl_close($ch);
return $response; ?>
它 returns 以下响应:
{"multicast_id":7847791275395796141,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1473926169782959%51b989d251b989d2"}]}
请告诉我我做错了什么?我也对 android 使用相同的代码及其服务器密钥和设备令牌,并且工作正常...
似乎return成功了。也许检查您的应用程序注册码以查看 phone 的令牌是否已更改。有时会生成一个新的令牌。
谢谢 shubank ..你的答案有效...我唯一需要添加的是优先级高...这是更新后的代码...它也可以帮助别人 :)
$ch = curl_init("https://fcm.googleapis.com/fcm/send");
//The device token.
$token = ""; //token here
//Title of the Notification.
$title = "Carbon";
//Body of the Notification.
$body = "Bear island knows no king but the king in the north, whose name is stark.";
//Creating the notification array.
$notification = array('title' =>$title , 'text' => $body);
//This array contains, the token and the notification. The 'to' attribute stores the token.
$arrayToSend = array('to' => $token, 'notification' => $notification,'priority'=>'high');
//Generating JSON encoded string form the above array.
$json = json_encode($arrayToSend);
//Setup headers:
$headers = array();
$headers[] = 'Content-Type: application/json';
$headers[] = 'Authorization: key= $key'; // key here
//Setup curl, add headers and post parameters.
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
//Send the request
$response = curl_exec($ch);
//Close request
curl_close($ch);
return $response;
这是我测试过的代码,运行良好。确保传递 fcm 令牌
$path_to_firebase_cm = 'https://fcm.googleapis.com/fcm/send';
$token=array($token);
$fields = array(
'registration_ids' => $token,
'priority' => 10,
'data'=>$send_notification ,
'notification' => array('title' => $type_of_notification, 'body' => $title ,'sound'=>'Default'),
);
$headers = array(
'Authorization:key=' .'your server key' ,
'Content-Type:application/json'
);
// Open connection
$ch = curl_init('https://fcm.googleapis.com/fcm/send');
// Set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL, $path_to_firebase_cm);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
// Execute post
$result = curl_exec($ch);
// Close connection
curl_close($ch);
return $result;