通过PHP (curl)发送Apple推送通知


Send Apple Push Notifications via PHP (curl)

告诉我如何在CURL php上通过推送的方式发送消息?这个承诺不起作用:

 $ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://gateway.push.apple.com:2195');
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_HEADER, 1);
 curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_SSLCERT,'1.pem');
 curl_setopt($ch, CURLOPT_SSLCERTPASSWD, "12345");
 curl_setopt($ch, CURLOPT_POSTFIELDS, '{"device_tokens": ["........................................."], "aps": {"alert": "test message one!"}}');
 $curl_scraped_page = curl_exec($ch);
 echo $curl_scraped_page;

你不能用CURL发送Apple推送通知。

你正在尝试用HTTPS请求向Apple发送推送通知。这是行不通的,因为苹果推送通知不支持HTTP。它们只能在TCP协议上使用特定的二进制格式。

作为提供商,您通过二进制接口与Apple推送通知服务通信。该接口为提供商提供高速、高容量接口;它将流TCP套接字设计与二进制内容结合使用。二进制接口是异步的

代替CURL,您可以使用stream_context。您可以找到许多代码示例。