【问题标题】:Invalid token for some devices某些设备的令牌无效
【发布时间】:2023-04-05 02:45:01
【问题描述】:

给定:

  • 工作的 iPod 应用程序
  • php中的服务器端(修改easyapns)。

我正在沙盒中发送请求 ssl://gateway.sandbox.push.apple.com:2195 如果我向 ssl://gateway.push.apple.com:2195 发送请求,则未返回错误,但未收到通知。在这种情况下,如果我发送完全错误的设备令牌(例如 12345),APN 仍然没有返回错误。

问题:APN 向查询增强通知格式返回 status_code => 8(用于说明停靠点:无效令牌),并为 5 个设备的 5 个令牌中的 4 个返回错误代码。

我有正确的开发证书,至少 iPod 的应用程序开发人员是这样说的,该开发人员将该证书发送给我。 并且 iPod 的应用程序开发人员认为应用程序每次都发送正确的开发令牌(我不知道如何在没有 mac 和开发人员工具的情况下检查设备令牌)。

已检查:

  • 服务器端口 2195,2196 已打开
  • 我的 iPod 连接到网络的路由器设置正确(并且用于接收的端口 5223 已打开) - 我在“iPusher”和“iPush 测试”应用程序上进行了测试
  • APN 连接成功
  • 尝试从本地机器发送
  • 尝试从 VPS 发送
  • 已检查

【问题讨论】:

  • 您是否将令牌存储在某处,以便该部分可能存在问题?
  • 目前在测试时直接在 php 代码中进行硬编码。而且不是我写的,只是复制/粘贴 iPod 应用程序发送到服务器的内容。
  • 在与实时 APN 服务器通信时,您使用的是实时证书和实时令牌,对吧?
  • 不,我使用的是正确的开发证书,至少 iPod 的应用程序开发人员是这样说的,该开发人员将该证书发送给了我。并且 iPod 的应用程序开发人员认为应用程序每次都发送正确的开发令牌(我不知道如何在没有 mac 和开发人员工具的情况下检查设备令牌)。您可能对我尝试请求生产 url 的事实感到困惑,但这是由于绝望。

标签: php apple-push-notifications devicetoken


【解决方案1】:

当我遇到这个问题时,原来是因为密钥和证书不匹配。尝试使用 openssl 连接:

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert cert.pem -key key.pem

直到喷出一堆以“已连接”开头的东西,你才没有正确连接。

【讨论】:

  • 你能澄清一下什么样的“一堆东西”表示有效连接吗?
  • 嗯......输出以'CONNECTED'开头,但你可能有一百行关于连接的详细信息。当证书和密钥不匹配时,您会得到类似:error setting private key 140735150221756:error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch:x509_cmp.c:331:
【解决方案2】:

我们面临着同样的问题。问题出在配置文件中:它是生产环境,但对于沙盒来说,它必须是开发环境。 更多描述见This comment

【讨论】:

    猜你喜欢
    • 2015-11-28
    • 1970-01-01
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    相关资源
    最近更新 更多