3+

[Értesítések a weben] 5. rész: Push, az az azonnali asztali értesítések

759

Elérkeztünk sorozatunk utolsó részéhez, melyben az azonnali - úgynevezett push értesítésekkel fogunk foglalkozni. A push notification egy valós időben megjelenő értesítés, amit a szerver a felhasználó(k) felé tud kiküldeni - még akkor is, ha a weboldalunk nincs megnyitva egyetlen programban sem. Ilyen értesítések a mobilos rendszereken már régóta elérhetőek, weben viszont még csak jelenleg kezd elterjedni - aminek egyik oka az lehet, hogy a Chrome után a többi böngészőprogram fejlesztője az utóbbi években kezdte el, vagy csak a közeljövőben fogja elkezdeni támogatni a szolgáltatást. Így ilyen értesítések előnyeit jelenleg a Chrome, és az erre épülő böngészők mellett a Safari és a Firefox felhasználók tudják kiélvezni - az Edge támogatása pedig a közeljövőben várható.

Bár a Push értesítések van W3C ajánlása, de megvalósítása így sem sikerült teljesen egységesre az egyes böngészőkben. Bár az alapvető működés egyforma így is minden böngésző alatt, mi mégis inkább egy külső szolgáltatás igénybevételét javasoljuk a célra. Ilyen például a Finebird, a SendPulse, és a OneSignal is. Cikkünkben ez utóbbit fogjuk bemutatni. 

onesignal

Az oldalra regisztrálva, és belépve létre is hozhatjuk első alkalmazásunkat. Ha ezzel elkészültünk, akkor az alkalmazás beállításánál kapcsolhatjuk be egyes platform-típusok értesítéseit. Ezek körül számunkra a Web platforms rész lesz érdekes.

A status oszlopban láthatjuk a platformok jelenlegi állapotát, az Options oszlopban pedig egy Configure gombot. Kattintsunk is rá erre a gombra a beállításhoz! A beállítások egyszerűek, az oldalunk nevét, webcímét és egy alapértelmezett ikonképet megadva, illetve a HTTP vagy HTTPS kapcsolat kiválasztása után tulajdonképpen már készen is vagyunk, kivéve a Chrome esetében: Ez esetben még szükség lesz egy Google alkalmazásra is, melynek az ID-jét a Google Developer Console-n létrehozása után meg kell adnunk a megfelelő mezőben.

Ha beállítottuk mindhárom böngészőt, akkor az oldalunkra kell beillesztenünk egy scriptet, mely a felhasználók számára fogja megjeleníteni az értesítés bekapcsolása gombot:

<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async='async'></script>
<script>
var OneSignal = window.OneSignal || [];
OneSignal.push(["init", { appId: "YOUR_APP_ID", autoRegister: false, /* Set to true to automatically prompt visitors */
     subdomainName: 'SUBDOMAIN_NAME',
     notifyButton: {
           enable: true /* Set to false to hide */
     }
}]);
</script>

Természetesen a feliratkozást akár személyre is szabhatjuk, az ezt lehetővé tevő függvények leírását itt találhatjuk meg.

Ha ezzel is kész vagyunk, már ki is próbálhatjuk a munkánk eredményét: Az oldalsó New messages gombra kattintva akár kézzel is küldhetünk üzeneteket a feliratkozott felhasználóknak. Viszont mi ennél többet szeretnénk elérni: PHP segítségével szeretnénk automatikus üzeneteket küldeni 1-1 esemény bekövetkeztekor. Erre a Server REST API nyújt lehetőséget. A https://onesignal.com/api/v1/notifications URL címre a megfelelő paraméterekkel POST kérés küldése esetén az üzenetet már el is küldtük a megfelelő felhasználók számára.

 $fields = array(
'app_id' => 'APP-ID',
'contents' => $content,
'headings' => $headings,
'isAnyWeb' => 'true',
'url' => 'https://into.hu/uzenofal',
'tags' => $feltetel
);

$fields = json_encode($fields);

$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, 'https://onesignal.com/api/v1/notifications');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: Basic CODE'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$result = curl_exec($ch);
curl_close($ch);

A küldés tartalma egy JSON kell legyen, melyben az üzenet szövege, ikonja, és egyéb adatok mellett feltételeket is megadhatunk, hogy kik kapják meg az értesítést. Ezeket a feltételeket ehhez hasonló formában lehet megadni:

 [{"field": "tag", "key": "level", "relation": ">", "value": "10"}, {"field": "amount_spent", "relation": ">","value": "0"}] 

A teljes leírás a OneSignal dokumentációjában tekinthető meg

Ezzel véget is ért volna az [Értesítések a weben] sorozat, melyben az email-ektől eljutottunk egészen a valós idejű, asztali értesítésekig. Az 5 rész alatt bemutatott lehetőségeket jól alkalmazva lehetőségünk adódik a felhasználókat az oldalunk rendszeres látogatására bírni, új események, tartalmak értesítéseivel a látogatók könnyen visszatérő látogatók lesznek. 

A cikksorozat előző részeit az oldalsó oszlopból érheted el. 

vmarci21 profilképe
Veszter Márton @vmarci21 +505 Weblap fejlesztő, az IntoMedia tagja. PHP, JavaScript és MySql témák mellett érdekli a Windows, Linux disztribúciók, Android fejlődése, az IT biztonság, és az újdonságokat felmutató IT termékek.
0 hozzászólás
Hozzászóláshoz jelentkezz be vagy Regisztrálj!