2012-04-24 7 views
3

私はこのサービスのiOSアプリケーションを実行しているiOSデバイスにプッシュ通知を送信するように私のdjangoアプリケーションを取得しようとしています。私はpyapnsを使用して通知を送信しようとしています。しかしAppleのプッシュ通知サーバーに接続することはできません。Pyapns Fault 500: 'APNSサーバーへの接続ができませんでした

サービスはほとんどが行われます。これは、私がベータから脱出する前に仕事をしたい最後のものです。 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の設定?私はルータのいくつかのポートを開くのを忘れてもいいですか?

編集

のAPN用のポートが開いている場合、私はSEにテストをしました。私は

telnet gateway.sandbox.push.apple.com 2195 

を行なったし、私は、サーバとルータのセットアップ正しいことだと思います

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

を得ました。

答えて

5

私は同じ問題がありました。それはです。 ファイルが不適切な形式になっている可能性があります。

正しい最終.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

は、この情報がお役に立てば幸いに:)

+0

こんにちは、あなたの答えをありがとう。私はそれを動作させるために別のpythonラッパーにchanchを行いましたが、今はすべてうまくいきます。 – dennis

+0

これはうまくいきました。これは受け入れられた回答としてマークされています – Santthosh

+0

私の.pemファイルにパスワードが設定されているとき、私はpyapnsから同じエラーを受けました。回答のリンクからopensslコマンドを使って修正。 – agilityvision

1

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

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

2つのコマンドは、2 .pemファイルが正常かどうかを確認するのに役立ちます。この最初のコマンドは、APNSに接続できるかどうかを確認するだけです。あなたが正常に接続した場合は、出力の束を買ってあげる -

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

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

$ 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 

これがそうであるはずです。私はこれが助けて欲しい!

1

私もこのエラーがありましたが、私の場合は "。" in私のapp_id

+0

私のためにここに同じ私はpyapnsをオフに投げた私のapp_idの余分な ' - 'を持っていた.. – Santthosh

2

私はpyapnsを使っている間にこのエラーが発生しました...この投稿や他の多くの答えをすべて試してみました...何も役に立たなかった...だからちょうど別のライブラリ(https://github.com/djacobs/PyAPNs)を使用することに決めました。初めて働いた!

0

私もこのエラーがありました。私のケースでは、documentationで説明したようにpython-epollライブラリが不足しています。

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

関連する問題