推送通知无法在设备上运行

时间:2014-02-24 10:47:43

标签: php iphone apple-push-notifications

您好我正在尝试在我的应用中创建推送通知我正在获取设备令牌和PHP脚本我已经编写了看到一些教程但现在我没有在我的设备中获取推送通知而不是我不在哪里这里做错了请帮帮我..

这是我的php脚本......

<?php

   if($_POST['message']){

   $deviceToken ='here i have given my device token ';

   $message = stripcslashes($_POST['message']);

    $payload = '{
         "aps" :
      {
      "alert" :"'.$message.'",
      "badge" : 1,
      "sound" : "bingbong.aiff"
     }  
    }';
    $ctx = stream_context_create();
    stream_context_set_option($ctx,'ssl', 'local_cert','ck.pem');
    stream_context_set_option($ctx,'ssl','passphrase', 'bali');
    $fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195',$err,$errstr,60,STREAM_CLIENT_CONNECT,$ctx);
   if(!fp){
       print "Failed to connect $err $errstrn";
       return;
       }else{
            print "notifications sent!";
           }
             $devArray = array();
             $devArray[] = $deviceToken;

             foreach($devArray as $deviceToken){
$msg = chr(0) . pack("n",32) . pack("H", str_replace(' ',' ',$deviceToken)).pack("n",strlen($payload)) . $payload;
        print "sending message:" .$payload . "n";
        fwrite($fp,$msg);
       }
           fclose($fp);
       }

      ?>

我使用本教程here

来编写此脚本

使用这个PHP脚本我试图在我的本地主机上运行但不工作请告诉我在脚本中做错了

感谢。

2 个答案:

答案 0 :(得分:1)

嗨,伙计们,我想出了我错在哪里

pack("H*", str_replace(' ',' ',$deviceToken)).

在我的代码中,星号符号在星号附近丢失后,星号对我来说工作正常

感谢您的重播

答案 1 :(得分:0)

服务器应该提供一些错误/成功响应,在关闭它之前从套接字读取应答,也检查连接错误。