Skip to content

EMMADevelopment/PyAPNs2

 
 

Repository files navigation

PyAPNs2

Python library for interacting with the Apple Push Notification service (APNs) via HTTP/2 protocol

Installation

Either download the source from GitHub or use easy_install:

$ easy_install apns2

Sample usage

import collections
from apns2.client import APNsClient
from apns2.payload import Payload

token_hex = 'b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b87'
payload = Payload(alert="Hello World!", sound="default", badge=1)
topic = 'com.example.App'
client = APNsClient('key.pem', use_sandbox=False, use_alternative_port=False)
client.send_notification(token_hex, payload, topic)

# To send multiple notifications in a batch
Notification = collections.namedtuple('Notification', ['token', 'payload'])
notifications = [Notification(payload=payload, token=token_hex)]
client.send_notification_batch(notifications=notifications, topic=topic)

# To use token based authentication
from apns2.credentials import TokenCredentials

auth_key_path = 'path/to/auth_key'
auth_key_id = 'app_auth_key_id'
team_id = 'app_team_id'
token_credentials = TokenCredentials(auth_key_path=auth_key_path, auth_key_id=auth_key_id, team_id=team_id)
client = APNsClient(credentials=token_credentials, use_sanbox=False)
client.send_notification_batch(notifications=notifications, topic=topic)

Further Info

iOS Reference Library: Local and Push Notification Programming Guide

Contributing

To develop PyAPNs2, check out the code and install dependencies. It's recommended to use a virtualenv to isolate dependencies:

# Clone the source code.
git clone https://github.com/Pr0ger/PyAPNs2.git
cd PyAPNs2
# Create a virtualenv and install dependencies.
virtualenv venv
. venv/bin/activate
pip install -e .

To run the tests:

pip install -r requirements-dev.txt
python -m unittest discover test

You can use tox for running tests with all supported Python versions:

pyenv install 2.7.15; pyenv install 3.4.9; pyenv install 3.5.6; pyenv install 3.6.7; pyenv install 3.7.1
pyenv local 3.7.1 3.6.7 3.5.6 3.4.9 2.7.15
pip install tox
tox

To run the linter:

pip install pylint
pylint --reports=n apns2 test

License

PyAPNs2 is distributed under the terms of the MIT license.

See LICENSE file for the complete license details.

About

Python library for interacting with the Apple Push Notification service (APNs) via HTTP/2 protocol

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%