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 发送 iOS 推送通知

设备离线时,apns 丢弃了旧的推送通知

iOS APNs 推送通知 - 开发

这个 php 脚本是不是仍可用于使用 APNs 发送测试推送通知? [基于证书的连接]

PHP 代码如何将 APNS 设备令牌用于 Apple 推送通知?

APNs Provider API HTTP/2 使用 php,curl 导致发送的多个推送通知出错