带有 PHP 脚本的 Apple 推送通知服务

2022-01-06 00:00:00 notifications php iphone push

我正在尝试向我的 iPhone (APNS) 发送推送通知.我读了这个 发布并尝试实施它.所以我所有的证书都很好(正常).

I'm trying so send push notifications ton my iPhone (APNS). I read this post and try to implement it. So all my certificates are good (normaly).

现在我有了这个 php 脚本:

Now I have this php script :

$device = '4f30e047 c8c05db9 3fa87e7d ca5325f7 738cb2c0 0b4a02d4 d4329a42 a7128173'; // My iphone deviceToken
$payload['aps'] = array('alert' => 'This is the alert text', 'badge' => 1, 'sound' => 'default');
$payload['server'] = array('serverId' => $serverId, 'name' => $name);
$output = json_encode($payload);

$apnsCert = 'apple_push_notification_production.pem';

$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);

$apns = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);

$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $device)) . chr(0) . chr(strlen($payload)) . $payload;
fwrite($apns, $apnsMessage);

//socket_close($apns); seems to be wrong here ...
fclose($apns);

当我运行这个脚本时,什么也没有发生.没有错误只是一个空页面,但我的 iPhone 没有收到推送通知......

When I run this script nothing happen. no error just an empty page but my iPhone doesn't receive the push notification ...

你有什么想法吗?

非常感谢!

推荐答案

设备令牌中没有空格,去掉它们

no space in device token, strip them

相关文章