Hogyan küldhet értesítéseket a webalkalmazáshoz a Python használatával

A natív alkalmazások a közelmúltban rendkívül népszerűvé váltak, főleg olyan funkciók miatt, mint az offline munkavégzés, az átmenetek, az egyszerű terjesztés és természetesen a push értesítések. De sajnos az értékes natív alkalmazás létrehozásához jó ismeretekkel kell rendelkeznie, mint például a Java vagy a Swift.

Progresszív webalkalmazások

A Progressive Web Apps (PWA) olyan JavaScript-alkalmazások, amelyek a böngészőben futnak. Arra törekszenek, hogy a natív alkalmazás egyes funkcióit az internetre vigyék. A PWA-k könnyen fejleszthetők, ha alapvető ismeretekkel rendelkezik a HTML-ről, a CSS-ről és különösen a JavaScript-ről. Sőt, ha a szolgáltatás már elérhető egy asztali eszköz számára egy webhelyen, akkor könnyebb hozzáadni a webalkalmazás funkcióit ahelyett, hogy natív mobilalkalmazást fejlesztene.

Értesítések

Az értesítések tájékoztatják a felhasználókat az új üzenetekről, új blogbejegyzésekről stb.

Sok natív alkalmazás push értesítéseket küld a felhasználónak. De ez a PWA-k és az Értesítések API segítségével is lehetséges.

OneSignal

Ebben az oktatóanyagban a OneSingal segítségével értesítéseket küldünk webalkalmazásunkra. A OneSignal egy hatékony eszköz, amely egyszerű felületet biztosít az értesítések továbbításához. Nyújtanak egy Rest API-t is, amelyet értesítések küldésére fogunk használni.

A OneSignal beállítása

Leküldéses értesítések küldéséhez először be kell állítania a OneSignalt. Ehhez szüksége van egy fiókra a OneSignal-on. Menjen át a weboldalukra, és nyomja meg a „Bejelentkezés” gombot a jobb felső sarokban.

Ezután létre kell hoznia egy alkalmazást. Adjon nevet, és válassza a „Telepítési platform” lehetőséget. Itt válassza az „Összes böngésző” lehetőséget. Ezt követően az „egyedi kódot” választja integrációnak. Ezután meg kell adnia néhány információt a webhelyéről.

Az alkalmazás beállítási területén található egy „Kulcsok és azonosítók” nevű fül. Másolja mindkét kulcsot későbbre.

Fontos: Ne ossza meg Önnel a REST API-kulcsot. Tartsa magán!

Ennyi a OneSignal beállításához. Az könnyű volt!

Állítsa be weboldalunkat

A következő részben hozzáadjuk az értesítési funkciót a weboldalunkhoz. A webhelynek meg kell várnia a OneSignal által küldött értesítéseket, és meg kell jelenítenie azokat a felhasználó számára.

Annak érdekében, hogy a böngésző tudassa, hogy Progresszív Webalkalmazást hoz létre, hozzáadunk egy manifest.json nevű fájlt a projektünk gyökeréhez.

{ "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"}

Az első hat kulcs-érték pár leírja az alkalmazás megjelenését. A gcm_send_id fontos az értesítések küldéséhez. Ha többet szeretne megtudni a manifest.json fájlról , megnézheti a Mozilla dokumentációját.

Böngészője nem keresi automatikusan a jegyzéket. A & lt; h e ad> címke minden HTML-dokumentumában meg kell adnia annak elérési útját .

 ...  ...

Ezenkívül szükségünk van néhány JavaScript-kódra a weboldalunk és a OneSignal összekapcsolásához.

Az ehhez tartozó kódot a & lt; h e ad> rész szkriptcímkéjébe helyezheti . Ne felejtse el újra elhelyezni a my- app-id címet a saját OneSignal alkalmazás-azonosítójával.

   var OneSignal = window.OneSignal || []; OneSignal.push(function () { OneSignal.init({ appId: "my-app-id", autoRegister: false, notifyButton: { enable: true, }, }); }); 

Amikor arra kéri a felhasználót, hogy iratkozzon fel az értesítésekre, végrehajtja ezt a kódrészletet.

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

Szüksége van egy szolgáltatóra is, aki a háttérben hallgatja az értesítéseket. Ezért két fájlra van szüksége a projekt gyökérkönyvtárában.

OneSignalSDKUpdaterWorker.js

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

OneSignalSDKWorker.js

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

Hozzáférés az API-hoz a Python használatával

A OneSignal rendelkezik egy könnyen használható Rest API-val. A végpontokat a OneSignal Developer Documentation dokumentálja.

Hozzáféréshez HTTP kéréseket kell küldenünk. Ezért a request nevű könyvtárat fogjuk használni . Telepítéséhez használhatja a pip-et, a Python csomagkezelőjét.

pip install requests

Ez az az API-végpont, amelyről értesítést kell küldenünk: //onesignal.com/api/v1/notifications.

A HTTP protokollnak számos módszere van. Ebben az esetben POST kérést szeretnénk benyújtani. Ehhez importálnunk kell a kérelmeket és végre kell hajtanunk egy függvényt.

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

A OneSignal szeretné ellenőrizni, hogy csak Ön küldhet-e értesítéseket a webhelyére. Tehát hozzá kell adnia egy HTTP fejlécet a OneSignal Rest API kulcsával.

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

Ne felejtse el kicserélni a my-rest-api-kulcsot a Rest API-kulcsára.

Ezenkívül néhány alapvető információra van szüksége az értesítéssel kapcsolatban.

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

Cserélje le az én-app-azonosítót a saját alkalmazás-azonosítójára. Ezután válassza ki, hogy ki kapja meg az értesítéseket. A példaértékek a következők "All", "Active Users", "Inactive Users”. De létrehozhat saját szegmenseket is. Az utolsóhoz pedig az üzenet angol nyelvű tartalmát adod hozzá. Ha más nyelvre van szüksége, ide is hozzáadhatja.

That’s it! If you subscribed to the notifications, you should get a push notification.

Send notifications using an API Wrapper

Because my code became kind of messy with many different notifications, I created an API wrapper for OneSignal.

API Wrapper

But what is an API wrapper? An API wrapper makes it easier for you to access an API. You can say that it is an API for an API. You call the API wrapper instead of the API directly.

You can install the wrapper called OneSignal-Notifications from pip.

pip install onesignal-notifications

Now you can import it and setup your client.

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

To send a Notification, you have to initialize the class SegmentNotificationand use the method send.

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

Maybe this looks kind of unnecessary to you, because it takes even more lines of code. But if you have several notifications, it makes the process much easier and your code more beautiful.

For example if you want to send a notification, which is based on some conditions, the API wrapper has a custom class for that.

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"), "OR", Filter.LastSession(">", "1"), ])

There are many custom parameters you can provide to adapt your notification. For example, you can add buttons to the notification. All list of all parameters can be found here.

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": "//i.imgur.com/N8SN8ZS.png", "url": "//github.com/Lanseuo/onesignal-notifications"} ], included_segments=SegmentNotification.ALL)

If you want to find out more about OneSignal-Notifications, you can have a look in the GitHub Repository or in the docs.