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

Whether using APNS or GCM, pushjack provides a common API interface for each.

APNS

from pushjack import APNSClient, create_apns_config

config = create_apns_config({
    'APNS_CERTIFICATE': '<path/to/certificate.pem>'
})

client = APNSClient(config)

# Send to single device.
client.send(token, alert, **options)

# Send to multiple devices.
client.send_bulk(tokens, alert, **options)

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

GCM

from pushjack import GCMClient, create_gcm_config

config = create_gcm_config({
    'GCM_API_KEY': '<api key>'
})

client = GCMClient(config)

# Send to single device.
client.send(token, alert, **options)

# Send to multiple devices.
client.send_bulk(tokens, alert, **options)

Config

The config object for configuring a client is expected to be a dict or subclass of dict:

gcm_config = {
    'GCM_API_KEY': '<api key>',
    'GCM_URL': 'https://android.googleapis.com/gcm/send',
    'GCM_MAX_RECIPIENTS': 1000
}

apns_config = {
    'APNS_CERTIFICATE': '<path/to/certificate.pem>',
    'APNS_HOST': 'gateway.push.apple.com',
    'APNS_PORT': 2195,
    'APNS_FEEDBACK_HOST': 'feedback.push.apple.com',
    'APNS_FEEDBACK_PORT': 2196,
    'APNS_ERROR_TIMEOUT': 0.5,
    'APNS_DEFAULT_EXPIRATION_OFFSET': 60 * 60 * 24 * 30
    'APNS_MAX_NOTIFICATION_SIZE': 2048
}

For a class based approached, configuration classes are provided for subclassing which can be passed to each client class. By default, both GCMConfig, APNSConfig, and APNSSandboxConfig will set default values for the settings that shouldn’t change. You will need to set GCM_API_KEY or APNS_CERTIFICATE appropriately though:

from pushjack import GCMClient, GCMConfig, APNSConfig, APNSSandboxConfig

class MyGCMConfig(GCMConfig):
    GCM_API_KEY = '<api key>'

class MyAPNSConfig(APNSConfig):
    APNS_CERTIFICATE = '<path/to/certificate.pem>'

class MyAPNSSandboxConfig(APNSConfig):
    APNS_CERTIFICATE = '<path/to/certificate.pem>'


client = GCMClient(MyGCMConfig)

NOTE: You can only pass in a class to the client initializer if it is a subclass of one of the provided *Config classes.

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-0.1.0.tar.gz (10.0 kB view hashes)

Uploaded Source

Built Distribution

pushjack-0.1.0-py2.py3-none-any.whl (13.3 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