forked from kernel1983/tornado_apns
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapns-send
executable file
·61 lines (42 loc) · 1.65 KB
/
apns-send
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/usr/bin/env python
from apns import APNs, Payload
import optparse
import time
from tornado import ioloop
parser = optparse.OptionParser()
parser.add_option("-c", "--certificate-file",
dest="certificate_file",
help="Path to .pem certificate file")
parser.add_option("-k", "--key-file",
dest="key_file",
help="Path to .pem key file")
parser.add_option("-p", "--push-token",
dest="push_token",
help="Push token")
parser.add_option("-m", "--message",
dest="message",
help="Message")
options, args = parser.parse_args()
if options.certificate_file is None:
parser.error('Must provide --certificate-file')
if options.key_file is None:
parser.error('Must provide --key-file')
if options.push_token is None:
parser.error('Must provide --push-token')
if options.message is None:
parser.error('Must provide --message')
apns = APNs(cert_file=options.certificate_file, key_file=options.key_file, use_sandbox=True)
def success():
print("Sent push message to APNS gateway.")
ioloop.IOLoop.instance().stop()
def send():
apns.gateway_server.send_notification(options.push_token, payload, success)
def on_response(status, seq):
print "sent push message to APNS gateway error status %s seq %s" % (status, seq)
def on_connected():
apns.gateway_server.receive_response(on_response)
# Send a notification
payload = Payload(alert=options.message, sound="default", badge=1)
apns.gateway_server.connect(on_connected)
ioloop.IOLoop.instance().add_timeout(time.time()+5, send)
ioloop.IOLoop.instance().start()