从Apple推送通知反馈中获取信息

时间:2015-10-14 11:43:23

标签: php ios curl apple-push-notifications

我希望通过curl(PHP或Linux)获得苹果推送通知的反馈。 我发现此代码用于发送推送通知

<!-- build:js(.) scripts/templates.js -->
<script src="path/to/module/templates.module.js"/>
<!-- endbuild -->

反馈服务

Apple提供反馈服务,您应该偶尔进行投票。这将 提供以前但不再有效的deviceTokens列表,例如用户是否已卸载您的iPhone应用程序 。然后,您可以从数据库中删除deviceToken,这样就不会与无效设备通信。

我需要一个PHP脚本才能从Apple反馈服务中获取此列表。

由于

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码:

<?php

    $apnsCert = 'Your_Certificate_File.pem'; //Put your Certificate_PATH/Certificate_File.pem Here

    $streamContext = stream_context_create(); //Creates a stream context 

    stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);//Sets option for a stream | For more information please see this page http://php.net/manual/en/function.stream-context-set-option.php 

    stream_context_set_option($streamContext, 'ssl', 'verify_peer', false); //Sets option for a stream

    $apns = stream_socket_client('ssl://feedback.push.apple.com:2196', $error, 

    $errorString, 60, STREAM_CLIENT_CONNECT, $streamContext); //Open Internet or Unix domain socket connection

    echo 'error=' . $error . "<br />";  //Show error number

    echo 'errorString=' . $errorString . "<br />"; //Show error string

    $result = fread($apns, 38); // Binary-safe file read and store in $result

    $unpacked = unpack("N1timestamp/n1length/H*devtoken", $result);//Get token from apple APNS

    echo 'Token is' ;print_r($unpacked); // Show token and can be replace with database update commands

    fclose($apns);