de Lucas Hild

Cum să trimiteți notificări către aplicația dvs. web utilizând Python

Cum sa trimiteti notificari catre aplicatia dvs web utilizand Python
Fotografie de Daria Nepriakhina pe Unsplash

Aplicațiile native au devenit extrem de populare în ultima perioadă, în principal datorită caracteristicilor cum ar fi funcționarea offline, tranzițiile, distribuibilitatea ușoară și, desigur, notificările push. Dar, din păcate, aveți nevoie de o bună cunoaștere a limbajelor cum ar fi Java sau Swift pentru a crea o aplicație nativă valoroasă.

Aplicații web progresive

Aplicațiile web progresive (PWA) sunt aplicații JavaScript care rulează în browser. Ei fac efortul de a aduce unele dintre caracteristicile aplicației native pe web. PWA-urile sunt ușor de dezvoltat dacă aveți cunoștințe fundamentale de HTML, CSS și în special JavaScript. Mai mult, dacă serviciul dvs. este deja accesibil pentru dispozitivele desktop de pe un site web, este mai ușor să adăugați funcționalitățile unei aplicații web, în ​​loc să dezvoltați o aplicație mobilă nativă.

Notificări

Notificările îi informează pe utilizatori cu privire la mesajele noi, le comunică despre o nouă postare pe blog și așa mai departe.

Multe aplicații native trimit notificări push utilizatorului. Dar acest lucru este posibil și folosind PWA-uri și API-ul Notificări.

1611457207 351 Cum sa trimiteti notificari catre aplicatia dvs web utilizand Python
Fotografie de Strada Jamie pe Unsplash

OneSignal

În acest tutorial, vom folosi OneSingal pentru a trimite notificări aplicației noastre web. OneSignal este un instrument puternic care oferă o interfață simplă pentru notificări push. De asemenea, acestea oferă un API Rest, pe care îl vom folosi pentru a trimite notificări.

Configurați OneSignal

Pentru a trimite notificări push, trebuie mai întâi să configurați OneSignal. Prin urmare, aveți nevoie de un cont pe OneSignal. Mergeți spre site-ul lor web și apăsați „Conectare” în colțul din dreapta sus.

Apoi va trebui să creați o aplicație. Dă-i un nume și alege „Setup platform”. Aici selectați „Toate browserele”. După aceea, alegeți „cod personalizat” ca integrare. Apoi, trebuie să furnizați câteva informații despre site-ul dvs. web.

În zona de setări a aplicației dvs., există o filă numită „Chei și ID-uri”. Copiați ambele taste pentru mai târziu.

Cum sa trimiteti notificari catre aplicatia dvs web utilizand Python

Important: Nu vă partajați cheia API REST. Păstrați-l privat!

Asta este pentru configurarea OneSignal. A fost ușor!

Configurați site-ul nostru web

În partea următoare, vom adăuga funcționalitatea de notificare pe site-ul nostru web. Site-ul va trebui să aștepte notificările trimise de OneSignal și să le afișeze utilizatorului.

Pentru a informa browserul că creați o aplicație web progresivă, vom adăuga un fișier numit manifest.json la rădăcina proiectului nostru.

{  "name": "My Application",  "short_name": "Application",  "start_url": ".",  "display": "standalone",  "background_color" : "#fff" ,  "description": "We send notifications to you",  "gcm_sender_id": "482941778795",  "gcm_sender_id_comment": "Do not change the GCM Sender ID"}

Primele șase perechi cheie-valoare descriu aspectul aplicației. gcm_send_id este important pentru trimiterea notificărilor. Dacă doriți să aflați mai multe despre manifest.json, puteți arunca o privire în Documentație Mozilla.

Browserul dvs. nu caută automat manifestul. Trebuie să introduceți calea către acesta în fiecare document HTML din < heanunț> etichetă.

<head>    ...    <link rel="manifest" href="https://www.freecodecamp.org/news/how-to-send-notifications-to-your-web-app-using-python-ba490b893292/manifest.json">    ...</head>

În plus, avem nevoie de un cod JavaScript pentru a ne conecta site-ul web la OneSignal.

Puteți pune codul pentru aceasta într-o etichetă de script în &lt; hereclama> partea. Nu uita să relocul meu-ID-aplicație cu propriul ID de aplicație OneSignal.

<head>    <script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async=""></script>        <script>        var OneSignal = window.OneSignal || [];        OneSignal.push(function () {            OneSignal.init({                appId: "my-app-id",                autoRegister: false,                notifyButton: {                    enable: true,                },            });        });    <script></head>
1611457207 965 Cum sa trimiteti notificari catre aplicatia dvs web utilizand Python
Solicitați utilizatorului să se aboneze la notificările dvs.

Când doriți să solicitați utilizatorului să se aboneze la notificările dvs., executați această bucată de cod.

OneSignal.push(function () {    OneSignal.showHttpPrompt();});

Mai mult, aveți nevoie de un lucrător de service, care ascultă în fundal notificări. Prin urmare, aveți nevoie de două fișiere în directorul rădăcină al proiectului dvs.

OneSignalSDKUpdaterWorker.js

importScripts('https://cdn.onesignal.com/sdks/OneSignalSDKWorker.js');

OneSignalSDKWorker.js

importScripts('https://cdn.onesignal.com/sdks/OneSignalSDKWorker.js');

Accesați API-ul folosind Python

OneSignal are un API de repaus ușor de utilizat. Punctele finale sunt documentate în Documentație pentru dezvoltator OneSignal.

1611457208 980 Cum sa trimiteti notificari catre aplicatia dvs web utilizand Python
Fotografie de Max Nelson pe Unsplash

Pentru a-l accesa, trebuie să trimitem solicitări HTTP. Prin urmare, vom folosi o bibliotecă numită solicitări. Pentru a-l instala, puteți utiliza pip, managerul de pachete al Python.

pip install requests

Acesta este punctul final API de care avem nevoie pentru a trimite o notificare: https://onesignal.com/api/v1/notifications.

Protocolul HTTP are mai multe metode. În acest caz, dorim să facem o cerere POST. Pentru a face acest lucru, trebuie să importăm cereri și să executăm o funcție.

import requests
requests.post("https://onesignal.com/api/v1/notifications")

OneSignal dorește să verifice dacă numai dvs. puteți trimite notificări pe site-ul dvs. web. Deci, trebuie să adăugați un antet HTTP cu cheia dvs. API Rest din OneSignal.

requests.post(    "https://onesignal.com/api/v1/notifications",    headers={"Authorization": "Basic my-rest-api-key"})

Nu uitați să înlocuiți my-rest-api-key cu cheia dvs. API Rest.

Mai mult, aveți nevoie de câteva informații de bază despre notificarea dvs.

data = {    "app_id": "my-app-id",    "included_segments": ["All"],    "contents": {"en": "Hello"}}
requests.post(    "https://onesignal.com/api/v1/notifications",    headers={"Authorization": "Basic my-rest-api-key"},    json=data)

A inlocui id-ul-aplicației mele cu propriul cod de aplicație. Apoi alegeți cine va primi notificările. Exemple de valori sunt "All", "Active Users", "Inactive Users”. Dar puteți crea și propriile segmente. Și pentru ultimul, adăugați un conținut al mesajului în limba engleză. Dacă aveți nevoie de altă limbă, o puteți adăuga și aici.

Asta e! Dacă v-ați abonat la notificări, ar trebui să primiți o notificare push.

1611457208 686 Cum sa trimiteti notificari catre aplicatia dvs web utilizand Python

Trimiteți notificări utilizând un API Wrapper

Deoarece codul meu a devenit cam dezordonat cu multe notificări diferite, eu a creat un wrapper API pentru OneSignal.

API Wrapper

Dar ce este un wrapper API? Un wrapper API vă permite să accesați mai ușor un API. Puteți spune că este un API pentru un API. Apelați învelișul API în locul API-ului direct.

Puteți instala împachetarea numită OneSignal-Notificări din pip.

pip install onesignal-notifications

Acum îl puteți importa și configura clientul.

from onesignal import OneSignal, SegmentNotificationclient = OneSignal("MY_APP_ID", "MY_REST_API_KEY")

Pentru a trimite o notificare, trebuie să inițializați clasa Notificare segment și utilizați metoda trimite.

notification_to_all_users = SegmentNotification(    {        "en": "Hello from OneSignal-Notifications"    },    included_segments=SegmentNotification.ALL)client.send(notification_to_all_users)

Poate că acest lucru vi se pare cam inutil, pentru că este nevoie și de mai multe linii de cod. Dar dacă aveți mai multe notificări, procesul va ușura mult, iar codul dvs. va fi mai frumos.

De exemplu, dacă doriți să trimiteți o notificare, care se bazează pe anumite condiții, învelișul API are o clasă personalizată pentru aceasta.

from onesignal import OneSignal, FilterNotification, Filterclient = OneSignal("MY_APP_ID", "MY_REST_API_KEY")
filter_notification = FilterNotification(    {        "en": "Hello from OneSignal-Notifications"    },    filters=[        Filter.Tag("my_key", "<", "5"),        "AND",        Filter.AppVersion(">", "5"),        "OR",        Filter.LastSession(">", "1"),    ])

Există mulți parametri personalizați pe care îi puteți oferi pentru a vă adapta notificarea. De exemplu, puteți adăuga butoane la notificare. Puteți găsi toată lista tuturor parametrilor aici.

from onesignal import OneSignal, FilterNotification, Filterclient = OneSignal("MY_APP_ID", "MY_REST_API_KEY")
filter_notification = SegmentNotification(    {        "en": "Hello from OneSignal-Notifications"    },    web_buttons=[        {          "id": "like-button",          "text": "Like",          "icon": "http://i.imgur.com/N8SN8ZS.png",          "url": "https://github.com/Lanseuo/onesignal-notifications"}    ],    included_segments=SegmentNotification.ALL)

Dacă doriți să aflați mai multe despre OneSignal-Notificări, puteți arunca o privire în GitHub Repository sau în documente.