A python library for interacting with the Apple Push Notification Service via HTTP/2 protocol
Project description
compat-fork-apns2
This is a fork of the apns2 library to provide compatibility with newer versions of Python and of the pyjwt library. It is maintained by the compat-fork project.
compat-fork changelog:
- Version 0.8.0
- No significant code changes from upstream
master
- No longer declare support for Python 3.7 (it probably still works but we're not in the business of supporting unsupported Python versions)
- Support pyjwt 2
- No significant code changes from upstream
Original README follows:
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 pip:
$ pip install apns2
Sample usage
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_sandbox=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 .[tests]
To run the tests:
pytest
You can use tox
for running tests with all supported Python versions:
pyenv install 3.5.6; pyenv install 3.6.7; pyenv install 3.7.1; pyenv install 3.8.0
pyenv local 3.8.0 3.7.1 3.6.7 3.5.6
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for compat_fork_apns2-0.8.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bfacd4f2802ccdff6f848c99930096b2bb2a363a9adf4b27048a78721b00875f |
|
MD5 | 74006efafd80202a8cf106ecd49821a8 |
|
BLAKE2b-256 | 107c7221fca0abb4ff2d90c8cd687f959c866d9589bd4b6bd08acf32556a329b |