API'ye geçmeden önce, push'i baştan sona genel hatlarıyla inceleyelim. Ayrı ayrı konulara veya API'lere daha sonra değinerken, bunların ne kadar ve neden önemli olduğu konusunda bir fikir edinmiş olacaksınız.
Push'i uygulamanın üç temel adımı şunlardır:
- Kullanıcıyı push'a abone etmek için istemci tarafı mantığını ekleme (ör. web uygulamanızda kullanıcıyı push mesajlarına kaydeden JavaScript ve kullanıcı arayüzü).
- Arka uçtan/uygulamadan gelen ve kullanıcının cihazına push mesajı tetikleyen API çağrısı.
- Cihazdaki push'a "push etkinliği" alacak olan service worker JavaScript dosyası. Bu JavaScript'in içinde bildirim gösterebilirsiniz.
Bu adımların her birinin neleri içerdiğine biraz daha ayrıntılı bir şekilde bakalım.
1. Adım: İstemci Tarafı
İlk adım, push mesajları için kullanıcıyı "abone" etmektir.
Kullanıcıların abone olması için iki şey gerekir. İlk olarak, kullanıcıdan push mesajı göndermek için izin alın. İkincisi, tarayıcıdan PushSubscription
almak.
PushSubscription
, ilgili kullanıcıya push mesajı göndermek için ihtiyaç duyduğumuz tüm bilgileri içerir.
Bunu, kullanıcının cihazına ait bir kimlik olarak düşünebilirsiniz.
Tüm bunlar JavaScript'te Push API ile yapılır.
Bir kullanıcıyı abone etmeden önce bir dizi "uygulama sunucusu anahtarı" oluşturmanız gerekir. Bu konuyu daha sonra ele alacağız.
VAPID anahtarları olarak da bilinen uygulama sunucusu anahtarları, sunucunuza özgüdür. Bu kimlikler, bir push hizmetinin kullanıcıya abone olan uygulama sunucusunu bilmesine ve bu kullanıcıya push mesajlarını tetikleyen sunucunun aynı olduğundan emin olmasına olanak tanır.
Kullanıcıyı abone ettikten ve PushSubscription
aldıktan sonra PushSubscription
ayrıntılarını arka uç/sunucunuza göndermeniz gerekir. Sunucunuzda bu aboneliği bir veritabanına kaydeder ve ilgili kullanıcıya push mesajı göndermek için kullanırsınız.
2. Adım: Push mesajı gönderin
Kullanıcılarınıza push mesajı göndermek istediğinizde bir push hizmetine API çağrısı yapmanız gerekir. Bu API çağrısı, hangi verilerin gönderileceğini, mesajın kime gönderileceğini ve mesajın nasıl gönderileceğiyle ilgili tüm ölçütleri içerir. Normalde bu API çağrısı sunucunuzdan yapılır.
Kendinize sorduğunuz bazı sorular:
- Push hizmeti nedir ve kim tarafından sağlanır?
- API nasıl görünür? JSON, XML mi yoksa başka bir şey mi?
- API ile neler yapılabilir?
Push hizmeti nedir ve kim tarafından sağlanır?
Push hizmeti, bir ağ isteği alır, doğrular ve uygun tarayıcıya bir push mesajı gönderir. Tarayıcı çevrimdışıysa tarayıcı çevrimiçi olana kadar ileti sıraya alınır.
Her tarayıcı istediği push hizmetini kullanabilir. Bu, geliştiricilerin kontrolünde olmayan bir durumdur. Her push hizmeti aynı API çağrısını beklediğinden bu sorun oluşturmaz. Yani push hizmetinin kim olduğuna dikkat etmeniz gerekmez. API çağrınızın geçerli olduğundan emin olmanız yeterlidir.
Bir push mesajını tetiklemek için uygun URL'yi (yani push hizmetinin URL'sini) almak üzere PushSubscription
içindeki endpoint
değerine bakmanız yeterlidir.
PushSubscription'dan alacağınız değerlere örnek olarak aşağıdakileri verebiliriz:
{
"endpoint": "https://random-push-service.com/some-kind-of-unique-id-1234/v2/",
"keys": {
"p256dh": "BNcRdreALRFXTkOOUHK1EtK2wtaz5Ry4YfYCA_0QTpQtUbVlUls0VJXg7A8u-Ts1XbjhazAkj7I99e8QcYP7DkM=",
"auth": "tBHItJI5svbpez7KI4CCXg=="
}
}
Bu durumda uç nokta [https://random-push-service.com/some-kind-of-unique-id-1234/v2/] şeklindedir. Push hizmeti "random-push-service.com" olur ve her uç nokta, "bir-tür-benzersiz-kimlik-1234" ile gösterilen kullanıcıya özgüdür. Push ile çalışmaya başladığınızda bu kalıbı fark edeceksiniz.
Abonelikteki anahtarlar daha sonra ele alınacaktır.
API nasıl görünür?
Her web push hizmetinin aynı API çağrısını beklediğini belirtmiştim. Bu API, Web Push Protokolü'dür. Bir push hizmetine nasıl API çağrısı yapabileceğinizi tanımlayan bir IETF standardıdır.
API çağrısı için belirli başlıkların ayarlanması ve verilerin bayt akışı olması gerekir. Bu API çağrısını bizim için gerçekleştirebilecek kitaplıklara ve bunu kendimizin nasıl yapacağımıza bakacağız.
API neler yapabilir?
API, kullanıcıya veri içerecek veya içermeyecek şekilde mesaj gönderme yöntemi sağlar ve mesajın nasıl gönderileceğine dair talimatlar sunar.
Push iletisiyle gönderdiğiniz veriler şifrelenmiş olmalıdır. Bunun nedeni, push mesajlarıyla gönderilen verileri herkes olabilecek push hizmetlerinin görüntüleyememesini sağlamaktır. Hangi push hizmetinin kullanılacağına tarayıcı karar verdiğinden bu durum önemlidir. Bu da, güvenli olmayan bir push hizmeti kullanan tarayıcıların önünü açabilir.
Bir push mesajı tetiklediğinizde push hizmeti API çağrısını alır ve mesajı sıraya alır. Bu mesaj, kullanıcının cihazı çevrimiçi olana ve push hizmeti iletileri gönderene kadar kuyrukta kalır. Push hizmetine verebileceğiniz talimatlar, push mesajının nasıl sıraya alınacağını belirler.
Talimatlar aşağıdaki gibi ayrıntıları içerir:
Bir push mesajının geçerlilik süresi. Bu ayar, bir mesajın kaldırılmadan ve teslim edilmeden önce ne kadar süre boyunca kuyrukta beklemesi gerektiğini tanımlar.
Mesajın aciliyetini tanımlayın. Bu, push hizmetinin yalnızca yüksek öncelikli iletileri göndererek kullanıcıların pil ömrünü koruması durumunda yararlıdır.
Bir push mesajına "konu" adı verin. Bu ad, bekleyen mesajların yerini yeni mesajla alır.
3. Adım: Etkinliği kullanıcının cihazına gönderin
Bir push mesajı gönderdikten sonra push hizmeti, aşağıdaki olaylardan biri gerçekleşene kadar mesajınızı sunucusunda saklar:
- Cihaz internete bağlanır ve push hizmeti iletiyi dağıtır.
- Mesajın süresi dolar. Bu durumda push hizmeti, mesajı sıradan kaldırır ve mesaj hiçbir zaman teslim edilmez.
Push hizmeti bir mesaj gönderdiğinde tarayıcı mesajı alır, tüm verilerin şifresini çözer ve hizmet çalışanınıza bir push
etkinliği gönderir.
Hizmet çalışanı, "özel" bir JavaScript dosyasıdır. Tarayıcı, sayfanız açık olmadan bu JavaScript'i yürütebilir. Hatta tarayıcı kapalıyken bile bu JavaScript'i çalıştırabilir. Hizmet çalışanları, web sayfasında bulunmayan API'lere (ör. hizmet çalışanı komut dosyasında bulunmayan API'ler) de sahiptir.
Service Worker'ın "push" etkinliği içinde olduğundan tüm arka plan görevlerini gerçekleştirebilirsiniz. Analiz çağrıları yapabilir, sayfaları çevrimdışı olarak önbelleğe alabilir ve bildirimleri gösterebilirsiniz.
Push mesajlaşma akışının tamamı budur.
Sonraki adımlar
- Web Push Bildirimlerine Genel Bakış
- Push'in işleyiş şekli
- Kullanıcıları abone etme
- İzin kullanıcı deneyimi
- Web Push Kitaplıklarıyla İleti Gönderme
- Web Push Protokolü
- Push Etkinliklerini Yönetme
- Bildirim görüntüleme
- Bildirim Davranışı
- Sık Karşılaşılan Bildirim Desenleri
- Push bildirimleri ile ilgili SSS
- Sık Karşılaşılan Sorunlar ve Hata Bildirme