推送通知在PHP [英] Push notification in PHP
问题描述
我试图执行我的PHP脚本来推notifcation发送到我的iPhone后,得到这个错误。
我曾尝试一切,没有什么作品。我认为,这意味着我的 ck.pem
是错误的,但林不知道,如果它的key.pem或者说是错误的cert.pem。
请帮忙
脚本
//这本假的设备ID:
$ deviceToken ='9870h8v088bj29u080af894jj67klfgcv9mmm79k8e4l23456h908743n093e359';//假密码:
$密码='123456';//这里把你的警告信息:
$消息='新邮件';
////////////////////////////////////////////////// //////////////////////////////$ CTX = stream_context_create();
stream_context_set_option($ CTXSSL,的local_cert','ck.pem');
stream_context_set_option($ CTX,'SSL','密码',$密码);//打开到APNS服务器的连接
$计划生育=在stream_socket_client(
SSL://gateway.sandbox.push.apple.com:2195',$犯错,
$ errstr,60,STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT,$ CTX);如果(!$ FP)
退出(无法连接:$犯错$ errstrPHP_EOL);回声连接到APNS。 PHP_EOL;//创建有效载荷体
$身体['APS'] =阵列(
'警报'=> $消息,
声音= GT; '默认',
'徽章'=> '1'
);// EN code中的有效载荷为JSON
$有效载荷= json_en code($体);//生成二进制通知
$味精= CHR(0)。包('N',32)。包(H *',$ deviceToken)。包('N',strlen的($有效载荷))。 $有效载荷;//它发送到服务器
$结果=的fwrite($计划生育,$味精,strlen的($味精));如果(!$结果)
回声消息发送失败。 PHP_EOL;
其他
回声的消息成功传递。 PHP_EOL;//关闭与服务器的连接
FCLOSE($ FP);?>
错误
警告:在stream_socket_client():SSL操作失败,code 1. OpenSSL的错误消息:
错误:14094416:SSL例程:SSL3_READ_BYTES:SSLv3的警报证书不明/用户/ daveking /桌面/应用程序认证/在线21 simplepush.php警告:在stream_socket_client():失败,使密码在/用户/ daveking /桌面/应用程序认证/在线21 simplepush.php警告:在stream_socket_client():无法连接到SSL://gateway.sandbox.push.apple.com:2195(未知错误)在/用户/ daveking /桌面/应用程序认证/ simplepush.php第21行
连接失败:0
你尝试过什么是什么呢?
<一个href=\"http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12\">http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12
<一href=\"http://www.raywenderlich.com/3525/apple-push-notification-services-tutorial-part-2\">http://www.raywenderlich.com/3525/apple-push-notification-services-tutorial-part-2
这是有关生成证书的,使得PHP脚本等一个很好的教程。
I get this error after trying to execute my php script to send a push notifcation to my iphone.
I have tried everything and nothing works. I believe that this means my ck.pem
is wrong but im not sure if its the key.pem or the cert.pem that is wrong.
Please help
Script
// This this a fake device id:
$deviceToken = '9870h8v088bj29u080af894jj67klfgcv9mmm79k8e4l23456h908743n093e359';
// fake password:
$passphrase = '123456';
// Put your alert message here:
$message = 'New Message';
////////////////////////////////////////////////////////////////////////////////
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
// Open a connection to the APNS server
$fp = stream_socket_client(
'ssl://gateway.sandbox.push.apple.com:2195', $err,
$errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
if (!$fp)
exit("Failed to connect: $err $errstr" . PHP_EOL);
echo 'Connected to APNS' . PHP_EOL;
// Create the payload body
$body['aps'] = array(
'alert' => $message,
'sound' => 'default',
'badge' => '1'
);
// Encode the payload as JSON
$payload = json_encode($body);
// Build the binary notification
$msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;
// Send it to the server
$result = fwrite($fp, $msg, strlen($msg));
if (!$result)
echo 'Message not delivered' . PHP_EOL;
else
echo 'Message successfully delivered' . PHP_EOL;
// Close the connection to the server
fclose($fp);
?>
Error
Warning: stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages:
error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate unknown in /Users/daveking/Desktop/App Certificates/simplepush.php on line 21
Warning: stream_socket_client(): Failed to enable crypto in /Users/daveking/Desktop/App Certificates/simplepush.php on line 21
Warning: stream_socket_client(): unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) in /Users/daveking/Desktop/App Certificates/simplepush.php on line 21
Failed to connect: 0
What have you tried exactly?
http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12 http://www.raywenderlich.com/3525/apple-push-notification-services-tutorial-part-2
This is a good tutorial on generating the certificate, making the php script etc.
这篇关于推送通知在PHP的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!