栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

发送多个iPhone推送通知+ APNS + PHP

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

发送多个iPhone推送通知+ APNS + PHP

这是我终于做到的方式

  1. 下载的apns-php
  2. PHP代码
    set_time_limit(0);$root_path = "add your root path here"; require_once($root_path."webrootcronlibraryconfig.php");require_once($root_path."VendorApnsPHPAutoload.php");    global $obj_basic;    // Basic settings    $timezone = new DateTimeZone('America/New_York');    $date = new DateTime();    $date->setTimezone($timezone);    $time =  $date->format('H:i:s');    //Get notifications data to send push notifications    $queueQuery = " SELECt `notifications`.*, `messages`.`mes_message`, `messages`.`user_id`, `messages`.`mes_originated_from`  FROM `notifications`   INNER JOIN `messages`   ON `notifications`.`message_id` = `messages`.`mes_id`   WHERe `notifications`.`created` <= NOW()";    $queueData = $obj_basic->get_query_data($queueQuery);    if(!empty($queueData)) {    // Put your private key's passphrase here:    $passphrase = 'Push';    $ctx = stream_context_create();    stream_context_set_option($ctx, 'ssl', 'local_cert', 'server_certificates_bundle_sandbox.pem');    stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);    // Open a connection to the APNS server    $fp = stream_socket_client(        'ssl://gateway.sandbox.push.apple.com:2195', $err,        $errstr, 60, STREAM_CLIENT_ConNECT|STREAM_CLIENT_PERSISTENT, $ctx);    if (!$fp)    exit("Failed to connect: $err $errstr" . PHP_EOL);    echo '<br>'.date("Y-m-d H:i:s").' Connected to APNS' . PHP_EOL;        foreach($queueData as $val) {     // Put your device token here (without spaces):     $deviceToken = $val['device_token'];     // Create message         // Get senders name         $sql = "SELECt `name` FROM `users` WHERe id =".$val['user_id'];         $name = $obj_basic->get_query_data($sql);         $name = $name[0]['name'];          $message = $name." : ";         // Get total unread messaged for receiver         $query = "SELECt COUNT(*)  as count FROM `messages`  WHERe mes_parent = 0 AND user_id = ".$val['user_id']." AND mes_readstatus_doc != 0 AND mes_status = 1";         $totalUnread = $obj_basic->get_query_data($query);         $totalUnread = $totalUnread[0]['count'];         $message .= " This is a test message.";     // Create the payload body     $body['aps'] = array(  'alert'         => $message,  'badge'     => $totalUnread,  'sound'     => 'default'      );     // Enpre the payload as JSON     $payload = json_enpre($body);     // Build the binary notification     $msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;     // Send it to the server     $result = fwrite($fp, $msg, strlen($msg));     if (!$result) {         echo '<br>'.date("Y-m-d H:i:s").' Message not delivered' . PHP_EOL;       } else {         $sqlDelete = "DELETE FROM `notifications` WHERe id = ".$val['id'];         $query_delete = $obj_basic->run_query($sqlDelete,'DELETE');         echo '<br>'.date("Y-m-d H:i:s").' Message successfully delivered' . PHP_EOL;     }        }        // Close the connection to the server        fclose($fp);        echo '<br>'.date("Y-m-d H:i:s").' Connection closed to APNS' . PHP_EOL;    } else {        echo '<br>'.date("Y-m-d H:i:s").' Queue is empty!';    }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/426327.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号