everyone,用Python推送Apple推送通知服務
我在使用下面的代碼時遇到了有關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()
,我得到下面的錯誤。 每當我嘗試在GitHub上使用PyAPN或在Google上使用APNWrapper時,我發現最後一個錯誤。 所以,我決定自己實施。
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
誰能幫我找出這個錯誤,或者給我一些可能的方向 完成這項工作?
打必須配置問題,PyAPNS工作正常,我。 – vartec 2012-02-03 10:24:17
我已經解決了這個問題,因爲我犯了一個錯誤來賺取我的pem文件。 – vrootic 2012-04-28 03:31:51