これが私が使っているコードです
<?php
$deviceToken = 'my device key'; // not putting in for security
$payload['aps'] = array('alert' => 'This is the alert text', 'badge' => 1, 'sound' => 'default');
$payload = json_encode($payload);
$apnsHost = 'gateway.sandbox.push.apple.com';
$apnsPort = 2195;
$apnsCert = 'apns-dev.pem';
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);
$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;
fwrite($apns, $apnsMessage);
socket_close($apns);
fclose($apns);
?>
そして私はこれらのエラーを受け取ります
警告:stream_socket_client()[function.stream-socket-client]:14行目の/home/bryan/sendpush.phpに秘密鍵ファイル`apns-dev.pem'を設定できません
警告:stream_socket_client()[function.stream-socket-client]:14行目の/home/bryan/sendpush.phpにSSLハンドルを作成できませんでした
警告:stream_socket_client()[function.stream-socket-client]:14行目の/home/bryan/sendpush.phpで暗号を有効にできませんでした
警告:stream_socket_client()[function.stream-socket-client]:14行目の/home/bryan/sendpush.phpのssl://gateway.sandbox.push.apple.com:2195(不明なエラー)に接続できません
警告:fwrite():指定された引数は17行目の/home/bryan/sendpush.phpの有効なストリームリソースではありません
警告:socket_close()は、パラメーター1がリソースであると想定しています。19行目の/home/bryan/sendpush.phpにブール値が指定されています。
警告:fclose():指定された引数は20行目の/home/bryan/sendpush.phpの有効なストリームリソースではありません
私は実際にこれらのエラーにそれを理解しました
警告:stream_socket_client()[function.stream-socket-client]:コード1でSSL操作が失敗しましたOpenSSLエラーメッセージ:エラー:14094410:SSLルーチン:SSL3_READ_BYTES:sslv3オンラインの/home/bryan/PushService.phpでハンドシェイクの失敗を警告します27
警告:stream_socket_client()[function.stream-socket-client]:27行目の/home/bryan/PushService.phpで暗号を有効にできませんでした
警告:stream_socket_client()[function.stream-socket-client]:/home/bryan/PushService.phpオンラインのssl://gateway.sandbox.push.apple.com:2195(不明なエラー)に接続できません