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
File details
Details for the file compat_fork_apns2-0.8.0.tar.gz
.
File metadata
- Download URL: compat_fork_apns2-0.8.0.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5605ee95e6926b31c49192b30decaf7b44756dfc503d1a04285d268423a9cb2 |
|
MD5 | 2970103cce6218763da00512819d3933 |
|
BLAKE2b-256 | a82dbe46aa05a29b6addcac5da1dd66e928c6412a4c30ee433b5f71c9e13af2b |
File details
Details for the file compat_fork_apns2-0.8.0-py3-none-any.whl
.
File metadata
- Download URL: compat_fork_apns2-0.8.0-py3-none-any.whl
- Upload date:
- Size: 11.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bfacd4f2802ccdff6f848c99930096b2bb2a363a9adf4b27048a78721b00875f |
|
MD5 | 74006efafd80202a8cf106ecd49821a8 |
|
BLAKE2b-256 | 107c7221fca0abb4ff2d90c8cd687f959c866d9589bd4b6bd08acf32556a329b |