使用 Python 向 Apple 通知服务发送消息

Posted

技术标签:

【中文标题】使用 Python 向 Apple 通知服务发送消息【英文标题】:Send Apple Notification Service A Message With Python 【发布时间】:2013-05-08 06:27:38 【问题描述】:

我正在关注以下 pyAPNS 库提供的文档: https://github.com/djacobs/PyAPNs

apns = APNs(use_sandbox=True, cert_file='ThePushCertificate.pem', key_file='ThePushKey.pem')
payload = Payload(alert="Checking if it works", sound="default", badge=1)
apns.gateway_server.send_notification(some_string, payload)

我收到以下错误:

SSLError: [Errno 1] _ssl.c:504: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

此错误发生在上面显示的最后一行代码。

这个错误是什么意思?我该如何解决这个问题?

PS。我已经坚持了几个小时了。我在这里找到了 1 个类似的问题,但答案并没有真正帮助我(就我的情况而言)。我将继续尝试找出问题所在,我只是觉得如果我在这里获得更高级的 ios / Python 开发人员的帮助可能会有所帮助。谢谢!


在尝试让它工作一天之后,我遇到了一个新错误:

SSL_CTX_use_PrivateKey_file:PEM lib

我还多次阅读了下面答案中建议的教程,但不幸的是,这并没有帮助。在本教程中,使用了一个新的组合 PEM 文件,但是在 repo 的文档中,没有使用该文件,有人知道我应该如何使用该文件吗?

【问题讨论】:

【参考方案1】:

我的问题的解决方案是我使用了私钥的密码。

由于 Keychain Access 明确要求输入密码,我认为这是必要的。 不是。

当我将密码留空时一切正常。

【讨论】:

【参考方案2】:

试试https://github.com/simonwhitaker/PyAPNs。确保您已正确配置证书。

参考Raywenderlich

【讨论】:

是的,我使用 Ray Wenderlich 的文章进行设置,链接是我使用的 GitHub 存储库的分支。我会尝试重新配置证书,希望这次能成功。 @GangstaGraham 上面提供的链接是我关注的链接,2-3 周前刚刚实施了 APNS,如果我记得我有这个问题是因为证书配置错误。 不幸的是,我一遍又一遍地阅读教程,我正在使用这个 repo,但我仍然收到错误,但这次不同, SSL_CTX_use_PrivateKey_file:PEM lib ,也在教程,我们将两个 PEM 文件合并为 1 个文件,但是在 repo 中,我们没有使用合并文件,您使用合并文件吗?非常感谢您的帮助。 你有APNS开发证还是生产证? 伟大的从来没有遇到过这个问题。无论如何,你找到了解决方案。我曾经提供密码并使用了对我有用的openssl pkcs12 -nocerts -out AppKey_pro.pem -in app.p12 -nodes

以上是关于使用 Python 向 Apple 通知服务发送消息的主要内容,如果未能解决你的问题,请参考以下文章

推送通知消息自定义?

停止向 Apple 发送推送通知以进行交付

Apple 向特定用户推送通知

APNS Apple 推送通知服务未收到来自 Apple 的成功消息

iphone推送通知服务问题

Apple 推送通知令牌