php - Apple 推送通知服务 APNS - 通知未到达

标签 php iphone push-notification apple-push-notifications

我正在尝试向我的应用添加推送通知。我使用的是临时配置文件。我的 appID 没有通配符。我正在使用以下 PHP 代码...

$deviceToken="****";masked
$time = time();

 $apnsHost = 'gateway.sandbox.push.apple.com'; 

$apnsPort = 2195;
$apnsCert = 'apns-dev-maui.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);
if($apns)
{
echo "Connection Established<br/>";
$payload = array();
$payload['aps'] = array('alert' => 'It works!!', 'badge' => 1, 'sound' => 'default');
$payload = json_encode($payload);
$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;

        print "sending message :" . $apnsMessage . "<br/>";
        print "sending payload :" . $payload . "<br/>";
        fwrite($apns, $apnsMessage);

}
else
{       
        echo "Connection Failed";
        echo $errorString;
        echo $error;
}
// socket_close($apns);
fclose($apns);

没有生成连接错误。反馈 channel 似乎没有任何消息。

我从组织者控制台获得了 deviceTokens 和一个 NSLog 命令。此应用程序的通知显示在我的设置菜单中。

我有一个 ATT 3G 和一个用作 iPod 的旧 2G。两者都不起作用。

没有错误可看,我没有想法。任何人都有任何见解?

珍妮弗

最佳答案

我终于明白了。我使用的是带有 AdHoc 配置文件的沙盒。 Ad Hoc 显然被认为是生产而不是开发。我创建了推送生产证书,安装了它,瞧!它有效。

关于php - Apple 推送通知服务 APNS - 通知未到达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2293155/

相关文章:

php - OS X Lion Apache 和 PHP 无法通信

iPhone:另一个应用程序可以覆盖我的 sqlite 数据库吗?

c# - 我们怎样才能降低iOS游戏的耗电量呢?

android - 谷歌云消息认证错误 (401)

php - 如何验证域所有权

php - 从 PHP 类中的另一个函数调用一个函数

php - required_without 不使用多个字段

iphone - 将 Google GData 添加到 iPhone 的 xcodeproject

ios - 顶级应用程序如何几乎同时发送多个 ios 推送通知?

ios - 当应用程序在 iOS 中关闭且应用程序未在后台运行时从推送通知获取数据