3

このサービスの iOS アプリを実行している iOS デバイスにプッシュ通知を送信するように django アプリを取得しようとしています。pyapnsを使用して通知を送信しようとしています。しかし、Apple プッシュ通知サーバーに接続できません。

サービスはほぼ完了しています。これは、ベータ版を終了する前に作業を開始したい最後の作業です。アプリについて読むには、http://pagemove.se/にアクセスしてください。

ログは次のとおりです。

Traceback (most recent call last): File "", line 1, in File "/usr/local/lib/python2.7/dist-packages/pyapns/client.py", line 75, in wrapper return func(*a, **kw) File "/usr/local/lib/python2.7/dist-packages/pyapns/client.py", line 67, in wrapper return func(*a, **kw) File "/usr/local/lib/python2.7/dist-packages/pyapns/client.py", line 97, in notify return _xmlrpc_thread(*f_args) File "/usr/local/lib/python2.7/dist-packages/pyapns/client.py", line 127, in _xmlrpc_thread errback(e) File "/usr/local/lib/python2.7/dist-packages/pyapns/client.py", line 65, in errback_wrapper errback(e) # not an instance of UnknownAppID - nothing we can do here File "/usr/local/lib/python2.7/dist-packages/pyapns/client.py", line 55, in errback raise e xmlrpclib.Fault:

誰もこの問題を抱えていませんか?.pem ファイルと同じことはできますか? またはubuntu-serverのセットアップ?ルーターのいくつかのポートを開くのを忘れていませんか?

編集

apnsのポートが開いているかどうかを確認するテストを行いました。やった

telnet gateway.sandbox.push.apple.com 2195

そして得た

Trying 17.149.34.65...
Connected to gateway.sandbox.push-apple.com.akadns.net.
Escape character is '^]'.

サーバーとルーターは正しくセットアップされていると思います。

4

5 に答える 5

5

私は同じ問題を抱えていました - それは接続を確立できるのでイライラし.pemます.ファイルはおそらく不適切にフォーマットされています.

次の素晴らしいステップバイステップの指示に従って、正しい最終.pemファイルを生成してください。

http://blog.serverdensity.com/2009/07/10/how-to-build-an-apple-push-notification-provider-server-tutorial/

また、キーチェーンから証明書とキーをエクスポートするときにパスワードを設定します-なくてもよいと言っているのは知っていますが、キーチェーンからのエクスポート時にパスワードをランダムなものに設定し、最後のopenssl rsa ...手順に従ってそのパスワードを削除してから連結することを発見しましたファイルは、私が抱えていた問題を解決するのに役立ちました。

絶対的な確信を持って話すことはできませんが、私にとっては、.pem上記のエラー メッセージを正確に生成したのはファイルでした。

最終的なファイル.pemはテキストで、次のようにフォーマットする必要があります (ここでの情報はランダムに生成され、行を何度も繰り返したことに注意してください)。

https://gist.github.com/58f79e1cd811f62bf011

お役に立てれば :)

于 2012-04-30T00:32:22.767 に答える
1

私は同じ問題を抱えていますが、これで解決したようです。どうやら、私は.pemまだパスワードを持っていました、そしてそれは問題でした。.pemそこで、ここでは、パスワードなしでを生成する方法について説明します。

このブログ投稿では、必要な2つの「.pem」ファイル(証明書とキー)を取得する方法と、それらを連結する方法の概要を説明しています。 http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12。(今のところ、パスワードを使用して.pemファイルを生成できます。後でパスワードを削除します)。

.pem2つのファイルに問題がないかどうかを確認するのに役立つ2つのコマンドを次に示します。この最初のコマンドは、APNSに接続できるかどうかを確認するだけです。

$ telnet gateway.sandbox.push.apple.com 2195

この2番目のコマンドは、.pemファイルに問題がないかどうかを確認します。接続に成功すると、大量の出力が表示されます。成功した場合、およびランダムなテキストを入力すると、切断されます。接続できない場合は、エラーメッセージが出力されます。

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

連結した後.pem、pyapnsのパスワードを削除する必要があります。これを行うには、でこのコマンドを使用します.pem

$ openssl rsa -in haspassword.pem -out nopassword.pem

そしてそれはそれであるはずです。これがお役に立てば幸いです。

于 2012-06-17T01:30:27.877 に答える
0

私にもこのエラーがありました。私の場合は、ドキュメントに記載されているように python-epoll ライブラリを見逃したためです。

現在のディレクトリにある twistd.log を確認することも役立つと思います。

于 2016-06-22T09:38:03.450 に答える