2012-02-03 3 views
2

모두,Apple Push Notification Service with Python

아래 코드를 사용했을 때 APN에 관한 문제를 만났습니다. 내가 코드를 실행 한 후이 서비스를

import socket, ssl, json, struct import binascii 

deviceToken = 'XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX' 

thePayLoad = { 
    'aps': { 
      'alert':'Hello world', 
      'sound':'default', 
      'badge':42, 
      }, 
    'test_data': { 'foo': 'bar' }, 
    } 

theCertfile = 'iphone_ck.pem' 

theHost = ('gateway.sandbox.push.apple.com', 2195) 

data = json.dumps(thePayLoad) 

deviceToken = deviceToken.replace(' ','') 

byteToken = binascii.unhexlify(deviceToken) 

theFormat = '!BH32sH%ds' % len(data) theNotification = struct.pack(theFormat, 0, 32, 

byteToken, len(data), data) 

ssl_sock = ssl.wrap_socket(socket.socket(socket.AF_INET, socket.SOCK_STREAM), certfile = theCertfile) 

ssl_sock.connect(theHost) 

ssl_sock.write(theNotification) 

ssl_sock.close() 

을 달성하기 위해 소스 코드의 많은 종류를 발견, 나는 아래의 오류가 발생했습니다. Google에서 GitHub 또는 APNWrapper에서 PyAPN을 사용하려고 할 때마다 오류가 발생했습니다. 그래서 저는 혼자서 구현하기로 결정했습니다.

Traceback (most recent call last): 
    File "testAPN.py", line 38, in <module> 
    ssl_sock.connect(theHost) 
    File "/usr/lib/python2.6/ssl.py", line 309, in connect 
    self.do_handshake() 
    File "/usr/lib/python2.6/ssl.py", line 293, in do_handshake 
    self._sslobj.do_handshake() 
ssl.SSLError: [Errno 1] _ssl.c:480: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 
alert handshake failure 

사람이 오류를 파악하거나 마무리에 몇 가지 가능한 방향을 나에게이 기능을 제공하는 데 도움이 있을까요?

+0

와 함께 싸울 필요가 없습니다가, PyAPNS 나를 위해 잘 작동합니다. – vartec

+1

필자는 pem 파일을 얻는데 실수를했기 때문에이 문제를 해결했습니다. – vrootic

답변

관련 문제