Client library for APNs Proxy Server.
Project description
Client program of APNs Proxy Server
Installation
pip install apns-proxy-client
How to Use
from apns_proxy_client import APNSProxyClient
client = APNSProxyClient(host="localhost", port=5556, application_id="myapp")
with client:
# send "Hello" alerts to many tokens
for token in many_tokens:
client.send(token, 'Hello', badge=1)
# get disabled device tokens from feedback service
feedback = client.get_feedback()
OR use connect() and close() instead of with
from apns_proxy_client import APNSProxyClient
client = APNSProxyClient(host="localhost", port=5556, application_id="myapp")
client.connect()
# send "Hello" alerts to many tokens
for token in many_tokens:
client.send(token, 'Hello')
# get disabled device tokens from feedback service
feedback = client.get_feedback()
client.close()
Set host and port for your server running on. application_id is specified in settings.py on apns-proxy-server.
send() method synopsis
token = "YOUR_VALID_DEVICE_TOKEN"
client = APNSProxyClient(host="localhost", port=5556, application_id="myapp")
with client:
# Simple
client.send(token, 'Hello')
# Custom sound (default = 'default')
client.send(token, 'Alert with custom sound', sound='custom')
# Message without sound
client.send(token, 'I am silent', sound=None)
# Badge
client.send(token, 'Alert with badge', badge=2)
# Change badge silently
client.send(token, None, sound=None, badge=9999)
# Set expiry (default = 1hour)
four_hours_later = int(time.time()) + (60 * 60 * 4)
client.send(token, 'I am long life', expiry=four_hours_later)
# Set priority (default = 10)
client.send(token, 'I am low priority', priority=5)
# For background fetch
client.send(token, None, sound=None, content_available=True)
# With custom field.
client.send(token, 'With custom field', custom={
'foo': True,
'bar': [200, 300],
'boo': "Hello"
})
# Finally following payload will send to APNs
# {
# "aps": {
# "alert": "With custom field",
# "sound": "default",
# },
# "foo": True,
# "bar": [200, 300],
# "boo": "Hello"
#}
# Use JSON Payload
client.send(token, {
'body': 'This is JSON alert',
'action_loc_key': None,
'loc_key': 'loc key',
'loc_args': ['one', 'two'],
'launch_image': 'aa.png'
})
# All
client.send(token, 'Many opts', sound='foo', badge=2, content_available=True,
custom={"bar": "boo"}, expiry=four_hour_later, priority=5)
# Test. APNsProxyServer don't send to APNs
client.send(token, 'This message never send to device', test=True)
Parameters of send method
Name |
Type |
Required |
Default Value (Set on server) |
---|---|---|---|
token |
string |
yes |
|
alert |
string, unicode or dict |
yes |
|
sound |
string |
no |
‘default’ |
badge |
number |
no |
None |
content_available |
bool |
no |
False |
custom |
dict |
no |
None |
expiry |
date |
no |
1 hour |
priority |
number |
no |
10 |
test |
bool |
no |
False |
get_feedback() method synopsis
This client library provides a way to get disabled device tokens from APNs feedback service; just call get_feedback() without any parameters.
get_feedback() returns the dict that is a pair of “device_token” and “timestamp”.
Name |
Type |
Description |
---|---|---|
device_token |
string |
The device token string which cannot be received push notifications |
timestamp |
float |
The seconds since 00:00 on January 1, 1970 UTC. This value means a timestamp which APNs judged the device token should be disabled. |
client = APNSProxyClient(host="localhost", port=5556, application_id="myapp")
with client:
feedback = client.get_feedback()
# a value of feedback likes the following dict:
# {
# "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef": 1399442843.0, # device_token : unix timestamp
# "abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789": 1399442892.0,
# }
For contributor
Makefile provides some useful commands.
Command |
Description |
---|---|
make setup |
Setup work directory |
make lint |
Code check using flake8 |
make test |
Run tests |
License
BSD
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
File details
Details for the file apns-proxy-client-0.1.0.tar.gz
.
File metadata
- Download URL: apns-proxy-client-0.1.0.tar.gz
- Upload date:
- Size: 6.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2056b7ae8789f8a95072960c41fa0d13d8c14c77c7bed3198ee09e2584b5309 |
|
MD5 | 8c91241268a45702a8defa2266af24e9 |
|
BLAKE2b-256 | 4e39c762362f082629bba9e50445c04e71cf38f76f49e61cc3b11067309b8a33 |