Skip to main content

Push notifications for APNS (iOS) and GCM (Android).

Project description

version travis coveralls license

Push notifications for APNS (iOS) and GCM (Android).

Quickstart

Install using pip:

pip install pushjack

Whether using APNS or GCM, pushjack provides clients for each.

APNS

Send notifications using the APNSClient class:

from pushjack import APNSClient

client = APNSClient(certificate='<path/to/certificate.pem>',
                    default_error_timeout=10,
                    default_expiration_offset=2592000,
                    default_batch_size=100)

token = '<device token>'
alert = 'Hello world.'

# Send to single device.
# Keyword arguments are optional.
res = client.send(token,
                  alert,
                  badge='badge count',
                  sound='sound to play',
                  category='category',
                  content_available=True,
                  title='Title',
                  title_loc_key='t_loc_key',
                  title_loc_args='t_loc_args',
                  action_loc_key='a_loc_key',
                  loc_key='loc_key',
                  launch_image='path/to/image.jpg',
                  extra={'custom': 'data'})

# List of all tokens sent.
res.tokens

# List of any subclassed APNSServerError objects.
res.errors

# Dict mapping token => APNSServerError.
res.token_errors


# Send to multiple devices by passing a list of tokens.
client.send([token], alert, **options)

# Override defaults for error_timeout, expiration_offset, and batch_size.
client.send(token,
            alert,
            expiration=int(time.time() + 604800),
            error_timeout=5,
            batch_size=200)

# Get expired tokens.
expired_tokens = client.get_expired_tokens()

# Close APNS connection
client.close()

For the APNS sandbox, use APNSSandboxClient instead:

from pushjack import APNSSandboxClient

GCM

Send notifications using the GCMClient class:

from pushjack import GCMClient

client = GCMClient(api_key='<api-key>')

registration_id = '<registration id>'
alert = 'Hello world.'

# Send to single device.
# Keyword arguments are optional.
res = client.send(registration_id,
                  data,
                  collapse_key='collapse_key',
                  delay_while_idle=True,
                  time_to_live=604800)

# List of requests.Response objects from GCM Server.
res.responses

# List of messages sent.
res.messages

# List of registration ids sent.
res.registration_ids

# List of server response data from GCM.
res.data

# List of successful registration ids.
res.successes

# List of failed registration ids.
res.failures

# List of exceptions.
res.errors

# List of canonical ids (registration ids that have changed).
res.canonical_ids


# Send to multiple devices by passing a list of ids.
client.send([registration_id], alert, **options)

For more details, please see the full documentation at http://pushjack.readthedocs.org.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pushjack-1.0.1.tar.gz (18.1 kB view hashes)

Uploaded Source

Built Distribution

pushjack-1.0.1-py2.py3-none-any.whl (19.6 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page