APNS PHP 推送通知问题
Posted
技术标签:
【中文标题】APNS PHP 推送通知问题【英文标题】:APNS PHP push notification issue 【发布时间】:2011-06-03 08:02:00 【问题描述】:我可以在服务器上成功运行 APNS。我收到这条消息:
Fri, 03 Jun 2011 10:01:41 +0200
Apnsphp[29402]: INFO: Trying ssl://gateway.sandbox.push.apple.com:2195... Fri, 03 Jun 2011 10:01:42 +0200
ApnsPHP[29402]: INFO: Connected to ssl://gateway.sandbox.push.apple.com:2195. Fri, 03 Jun 2011 10:01:42 +0200
ApnsPHP[29402]: INFO: Sending messages queue, run #1: 1 message(s) left in queue. Fri, 03 Jun 2011 10:01:42 +0200
ApnsPHP[29402]: STATUS: Sending message ID 1 [custom identifier: Message-Badge-3] (1/3): 167 bytes. Fri, 03 Jun 2011 10:01:43 +0200
ApnsPHP[29402]: INFO: Disconnected.
但是当我在设备上运行应用程序时,我没有收到推送通知。我已经编写了所有代码并创建了entitlement.plist
文件。
谁能帮我解决这个问题?也没有调试错误。
非常感谢任何帮助。
谢谢,
安克斯
【问题讨论】:
这个小信息很难知道。这可能是无效的负载(消息、设备令牌、长度...),或者您使用的证书无效,甚至是您的应用程序中的错误实现。发送推送时无需运行应用程序,因为它不会显示任何内容,但既然这样做了,请检查是否调用了 didReceiveRemoteNotification。 didReceiveRemoteNotification 没有被调用。如果证书本身无效,我认为服务器不会显示成功消息。 【参考方案1】:在我看来,您失踪了,或者您的设备应用令牌无效。
【讨论】:
你能解释一下,我如何检查它是否有效?? 你能在你的 iPhone 上打印出 app-token-id 吗?必须将完全相同的 app-token-id 发送到服务器(或者服务器必须以某种方式知道您的 app-token-id),然后它将有效负载(连同 app-token-id)推送到 APNS 网关。每个需要注册 PUSH 的应用都会至少调用一次该函数“didRegisterForRemoteNotificationsWithDeviceToken”。更多信息请见:macoscoders.com/2009/05/17/… 好的,我的设备正在显示它的设备 ID。我已将相同的 id 复制到我的 PHP 脚本中。现在我正在运行已经有我的设备 ID 的 PHP 脚本。所以它应该将该消息发送到 APNS,APNS 应该将该消息发送到我的设备。无论我在服务器上收到什么消息,就像它正在向 APNS 发送消息,但我的设备没有收到它。当我尝试调试时,它没有调用 didRegister...函数...知道吗??以上是关于APNS PHP 推送通知问题的主要内容,如果未能解决你的问题,请参考以下文章
这个 php 脚本是不是仍可用于使用 APNs 发送测试推送通知? [基于证书的连接]