subscribe to GCM/FCM and receive notifications
Project description
subscribe to GCM/FCM and receive notifications
python implementation of https://github.com/MatthieuLemoine/push-receiver
tested on python 2.7.16, 3.4.10 and 3.7.5
I put this together in a day or so, it’s still rough around the edges, especially the listen part, which I don’t really use myself and have just implemented for fun and only briefly tested
note that for the listening part I had to pull in http-ece which depends on a full blown native crypto library rather than just oscrypto. it is an optional dependency so you’ll have to install it explicitly by depending on push_receiver[listen]
usage
pip install push_receiver[listen,example]
basic usage example that stores and loads credentials and persistent ids and prints new notifications
you can also run this example with this command (change the sender id)
python -m "push_receiver" --sender-id=722915550290
from push_receiver import register, listen
import json
def on_notification(obj, notification, data_message):
idstr = data_message.persistent_id + "\n"
# check if we already received the notification
with open("persistent_ids.txt", "r") as f:
if idstr in f:
return
# new notification, store id so we don't read it again
with open("persistent_ids.txt", "a") as f:
f.write(idstr)
# print notification
n = notification["notification"]
text = n["title"]
if n["body"]:
text += ": " + n["body"]
print(text)
if __name__ == "__main__":
SENDER_ID = 722915550290 # change this to your sender id
try:
# already registered, load previous credentials
with open("credentials.json", "r") as f:
credentials = json.load(f)
except FileNotFoundError:
# first time, register and store credentials
credentials = register(sender_id=SENDER_ID)
with open("credentials.json", "w") as f:
json.dump(credentials, f)
print("send notifications to {}".format(credentials["fcm"]["token"]))
with open("persistent_ids.txt", "a+") as f:
received_persistent_ids = [x.strip() for x in f]
listen(credentials, on_notification, received_persistent_ids)
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 push_receiver-0.1.1.tar.gz
.
File metadata
- Download URL: push_receiver-0.1.1.tar.gz
- Upload date:
- Size: 15.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e49e6adadfd41f03e3a0ad1c732832db90fb9c5bcce0747ab3e451909f360ec |
|
MD5 | 902578ea5bee2f74767a3477fe6746ee |
|
BLAKE2b-256 | 75983722c171b49980f33291e6f83ffd7224c30bbe06419501a4c180ad4ec736 |
File details
Details for the file push_receiver-0.1.1-py2.py3-none-any.whl
.
File metadata
- Download URL: push_receiver-0.1.1-py2.py3-none-any.whl
- Upload date:
- Size: 17.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b16eebb79a04cf2e85ade8208df909566abded4095bae9936cefad87321a3fcd |
|
MD5 | 3786dc37096c2e461abc0fe140819b64 |
|
BLAKE2b-256 | f27da3c15baccf427796f517f18427bc084aabf61dc82b3915ea226461d26de7 |