使用PHP的iPhone反馈服务

时间:2009-09-28 13:27:28

标签: php iphone iphone-sdk-3.0 apple-push-notifications

全部好,

有没有人能够从iPhone APNS反馈服务使用PHP返回的二进制数据中提取设备令牌?我正在寻找类似于使用python实现的东西 http://www.google.com/codesearch/p?hl=en&sa=N&cd=2&ct=rc#m5eOMDWiKUs/APNSWrapper/init.py&q=feedback.push.apple.com

根据Apple文档,我知道前4个字节是时间戳,接下来的2个字节是令牌的长度,其余字节是二进制格式的实际令牌。 (http://developer.apple.com/IPhone/library/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingWIthAPS/CommunicatingWIthAPS.html#//apple_ref/doc/uid/TP40008194-CH101-SW3

我成功地从数据反馈服务返回中提取时间戳,但是我使用PHP的内置方法bin2hex()转换为十六进制后获得的设备令牌实际上与原始设备令牌不同。我在转换中做了一些愚蠢的事情。如果他们已经使用PHP实现了APNS反馈服务,有人可以帮助我吗?

TIA, -Anish

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

实现这一目标的最佳地点实际上是iPhone门户网站内部的Apple开发者论坛 - 有大量不同语言的示例用于处理这些推送请求。

我目前也参加360iDev推送会议,并且他们注意到可以在以下位置找到开源PHP服务器:

http://code.google.com/p/php-apns/

答案 2 :(得分:0)

获得二进制流后,您可以像这样处理它:

while ($data = fread($stream, 38)) {
  $feedback = unpack("N1timestamp/n1length/H*devtoken", $data);
  // Do something
}

$ feedback将是一个包含元素“timestamp”,“length”和“devtoken”的关联数组。