Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
The async APNS for tornado based on PyAPNS
Python
branch: master

Update README.markdown

thanks to Ethan-Zhang :)
latest commit 41e62586fe
@kernel1983 authored

README.markdown

tornado_apns

A Python library for interacting with the Apple Push Notification service (APNs) for tornado async programming

Sample usage

from apns import APNs, Payload
from tornado import ioloop

apns = APNs(use_sandbox=True, cert_file='cert.pem', key_file='key.pem')

def success():
    print("Sent push message to APNS gateway.")
    ioloop.IOLoop.instance().stop()

def send():
    token_hex = 'b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b87'
    payload = Payload(alert="Hello World!", sound="default", badge=1)
    apns.gateway_server.send_notification(token_hex, 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) 

# Connect the apns
apns.gateway_server.connect(on_connected)

# Wait for the connection and send a notification
ioloop.IOLoop.instance().add_timeout(time.time()+5, send)

ioloop.IOLoop.instance().start()

For more complicated alerts including custom buttons etc, use the PayloadAlert class. Example:

alert = PayloadAlert("Hello world!", action_loc_key="Click me")
payload = Payload(alert=alert, sound="default")

To send custom payload arguments, pass a dictionary to the custom kwarg of the Payload constructor.

payload = Payload(alert="Hello World!", custom={'sekrit_number':123})

Further Info

iOS Reference Library: Local and Push Notification Programming Guide

Credits

Written and maintained by Simon Whitaker at Goo Software Ltd and tornado it by kernel1983.

Also thanks to Ethan-Zhang for contributing.

Something went wrong with that request. Please try again.