使用 php 向 IOS 设备发送推送通知
Posted
技术标签:
【中文标题】使用 php 向 IOS 设备发送推送通知【英文标题】:Sending Push Notifications to IOS Devices with php 【发布时间】:2017-09-27 15:17:39 【问题描述】:我正在开发一个将使用 FCM 发送推送通知的 ios 应用程序,我已经在 FCM 控制台上正确配置了所有内容,并测试了从控制台向设备发送消息并且它工作正常。现在我正在使用以下脚本,消息无法推送到手机。 当我发送时,我会收到此消息
"multicast_id":7893466200486146313,"success":1,"failure":0,"canonical_ids":0,"results":["message_id":"0:1506525095628728%b54fead7f9fd7ecd"]
下面是我的脚本
// Replace with the real server API key from Google APIs
$apiKey = "-------";
// Replace with the real client registration IDs
$registrationIDs = array('00000');
// Message to be sent
$message = "New Message from GWCL";
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array(
'registration_ids' => $registrationIDs,
'data' => array( 'message' => $message,'title' => "New Message",'notId'=>''.time(), 'complain_id'=>'90','push'=>'reply','priority'=>'high'),
);
$headers = array(
'Authorization: key=' . $apiKey,
'Content-Type: application/json'
);
// Open connection
$ch = curl_init();
// Set the URL, number of POST vars, POST data
curl_setopt( $ch, CURLOPT_URL, $url);
curl_setopt( $ch, CURLOPT_POST, true);
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode( $fields));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode( $fields));
$result = curl_exec($ch);
curl_close($ch);
echo $result;
我按照教程告诉我添加'priority'=>'high'
,我做了但仍然没有工作
【问题讨论】:
确保您从 ios 获得正确的注册设备令牌,并且根据您的 php 响应没有错误。可能来自您必须检查的 ios 设备。 如果成功则意味着您拥有正确的设备令牌,否则将引发无效注册 我没用过FCM,但是你是在Release还是Debug?如果您正在调试,则必须使用调试证书并指示 FCM 连接到 Apple 调试 APN。 我已将 .p12 文件上传到 fcm 只有 VoIP 推送证书对于调试和发布是相同的。普通推送证书不同。 【参考方案1】:最近我在 Firebase 和 APN 上处理推送通知,所以我可以根据您的 FCM 响应说推送通知从 PHP 端成功发送
所以我猜你在你的应用程序方面处理了一些错误
由于我是 PHP 开发人员,我不太了解 ios 开发。所以可以分享一些链接,它可能会帮助您调试
firebase iOS not receive push notifications
Firebase when receive Push Notification did not receive the popup
iOS not receiving Firebase Push Notification sent through the API
Not receiving Push Notifications Using firebase and Objective C
Not receiving Firebase push notifications when app is open?
【讨论】:
我面临几乎类似的问题我的服务器向主题发送数据消息,它在 android 中工作但无法在 IOS 中接收,另一方面,当我从 firebase 控制台发送消息时,IOS 运行良好,我的猜测是,服务器以 IOS 不支持的格式发送数据消息可能是错误的键值对等,你能告诉我我想在 IOS 中接收的数据消息的格式应该是什么,或者有预定义的服务器端需要使用的密钥。以上是关于使用 php 向 IOS 设备发送推送通知的主要内容,如果未能解决你的问题,请参考以下文章
如何从 PHP 网站向 iOS 和 Android 发送推送通知?