行deviceToken = deviceToken.replace(' ','').decode('hex')
正在崩溃我的脚本。
这是设备令牌:(更改了一些数字)
deviceToken = '9cdcb815 d93e11ce 52baaf6c 14e27cc8 31d5ce62 2e51ce6d f75692c2 3617cadb'
第一个推送通知发送正常,所以我确定设备令牌没问题但是在第一个事件之后我收到了这个错误:
['"INBOX" (UNSEEN 12)']
Sent Push alert.
Got an event!
['"INBOX" (UNSEEN 13)']
Exception in thread Thread-4:Exception in thread Thread-4:
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 530, in __bootstrap_inner
self.run()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 483, in run
self.__target(*self.__args, **self.__kwargs)
File "server.py", line 111, in idle
self.dosync()
File "server.py", line 118, in dosync
sendPushNotification(numUnseen)
File "server.py", line 54, in sendPushNotification
deviceToken = deviceToken.replace(' ','').decode('hex')
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/hex_codec.py", line 42, in hex_decode
output = binascii.a2b_hex(input)
TypeError: Non-hexadecimal digit found
答案 0 :(得分:7)
您的设备令牌可能不是您认为的那样。也许它有换行或其他一些你看不到的角色。
作为一个简单的测试:
>>> deviceToken = '9cdcb815 d93e11ce 52baaf6c 14e27cc8 31d5ce62 2e51ce6d f75692c2 3617cadb'
>>> deviceToken.replace(' ','')
'9cdcb815d93e11ce52baaf6c14e27cc831d5ce622e51ce6df75692c23617cadb'
>>> deviceToken.replace(' ','').decode('hex')
'\x9c\xdc\xb8\x15\xd9>\x11\xceR\xba\xafl\x14\xe2|\xc81\xd5\xceb.Q\xcem\xf7V\x92\xc26\x17\xca\xdb'