PHP 간단하게 만들어 봤었던 테스트 푸시 발송 기능.
<?php
$title = 'this is title';
$message = 'message!!!';
$title = preg_replace("/\"/", "'", $title);
$message = preg_replace("/\"/", "'", $message);
$result = array();
$apnsHost = 'gateway.push.apple.com';
$apnsCert = '.../apns_production.pem'; // iOS Developer 를 통한 생성.
$apnsPort = 2195;
$apnsToken = 'abcdefg012345'; // app token
$payload = array();
// 현재 발송 메시지 형태
$payload['aps'] = array(
"alert" => $message,
"badge" => 1,
"sound" => "pushSound.caf",
"content-available" => 1);
$payload['extra'] = array("param1" => 0, "param2" => "");
$push = json_encode($payload);
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
$apns = stream_socket_client('ssl://'.$apnsHost.':'.$apnsPort, $error, $errorString, 10, STREAM_CLIENT_CONNECT, $streamContext);
if($apns) {
$apnsMessage = chr(0).chr(0).chr(32).pack('H*', str_replace(' ', '', $apnsToken)).chr(0).chr(strlen($push)).$push;
var_dump($apnsMessage);
fwrite($apns, $apnsMessage);
@fclose($apns);
}
?>