Page tree
Skip to end of metadata
Go to start of metadata

Základné pojmy, nastavenia a podpora

websitePushID

  • identifikátor webu vo forme web.{doména v reverznom zápise} (napr. web.com.muziker)

deviceToken

  • unikátne ID zariadenia/Safari

version

  • verzia push backendu, aktuálne sa používa všade v1, je možné, že do budúcnosti sa to zmení - apple zmení formát requestov, atď.
  • backend v1 by mala byť ideálne restful služba, ale dá sa obsluhovať aj cez rewrite.
  • web push služby sú aktuálne podporované len v OSX, v iOS je to možné len pomocou wrapperu - natívnej aplikácie. Samotné mobilné Safari neobsahuje ani objekt window.safari, ktorý umožňuje web push notifikácie.

push profil používateľa

Vytvorenie webpush balíka pre web

Základom pre Safari pushky je vytvorenie autentifikačného balíka.

Posledný krok vytvorenia balíka je vytvorenie manifestu a bezpečnostného podpisu - je možné na to použiť tento PHP skript (do budúcnosti by sa zišlo prepísať ho do jobu)

Vytvorený balík sa umiestňuje do www adresára, aby cesta bola vo forme webServiceURL/version/pushPackages/websitePushID, teda napr.:

https://muziker.sk/v1/pushPackages/web.com.muziker.webpush

Vyžiadanie povolenia v Safari

Pre vyžiadanie povolenia v Safari sa používa jednoduchý skript.

Po povolení Safari volá rovnakú linku ako pri (de)aktivácii v nastaveniach.

Pre naše účely voláme cez XHR "našu" unifikovanú url, zhodnú s backendom pre Firefox/Chrome, napr.:

https://muziker.sk/json/sk/web_push_subscribe

Máme tak možnosť si poslať špecifickejšie údaje pre subscribe.

Aktivácia/Deaktivácia na základe zmeny nastavení notifikácií

Pri zmene/prepínaní nastavena notifikácií pre konkrétny web posiela Safari request na adresu formátu webServiceURL/version/devices/deviceToken/registrations/websitePushID, teda napr.:

https://muziker.sk/v1/devices/ASD89FA...LJS0/registrations/web.com.muziker.webpush

Podľa device tokenu sa vyhľadá profil používateľa.

Ak ide o POST request, zmení sa vo webpush profile subscription_active na 1.

Ak ide o DELETE request, zmení sa vo webpush profile subscription_active na 0.

Overenie podpisu webpush balíka

Pre overenie podpisu vygenerovaného overovacieho webpush balíka sa dá použiť tento postup:

curl -O http://domain.com/v1/pushPackages/web.com.domain
unzip web.com.domain
openssl smime -verify -in signature -inform der -content manifest.json -noverify

Troubleshooting

Safari cez v1 backend loguje chyby v spracovaní cez url webServiceURL/version/log.

Informácie posiela ako array textových správ cez POST request.

Do logu odchádzajú aj informácie o problémoch pri stiahnutí/overení auth balíka, takže treba najprv pripraviť log backend, až potom testovať vygenerovaný balík.

  • No labels