Push bildirimlerinin ne olduğuna, neden kullanılabileceğine ve işleyiş şekline genel bakış.
Push bildirimleri nedir?
Push mesajları, kullanıcılarınız web sitenizi kullanmasalar bile dikkatlerini bilgilere çekmenizi sağlar. Kullanıcılar etkin olmasa bile onlara bilgi "push" edebileceğiniz için bu mesajlara push mesajları denir. Bu kavramı daha iyi anlamak için push teknolojisini pull teknolojisiyle karşılaştırın.
Bildirimler, kullanıcılara küçük bilgi parçaları sunar. Web siteleri, kullanıcılara önemli ve zamana duyarlı etkinlikler veya kullanıcının yapması gereken işlemler hakkında bilgi vermek için bildirimler kullanabilir. Bildirimlerin görünümü ve hissi platformlar arasında değişiklik gösterir:
Push mesajları ve bildirimler, birbirinden farklı ancak birbirini tamamlayıcı teknolojilerdir. Push, web sitenizi aktif olarak kullanmadıklarında bile sunucunuzdan kullanıcılara mesaj gönderme teknolojisidir. Bildirimler, kullanıcının cihazında itilen bilgileri görüntüleme teknolojisidir. Bildirimleri push mesajlaşma olmadan kullanmak mümkündür. Bir gün, kullanıcılara yönelik bildirimler olmadan push mesajları (sessiz push) kullanmak da mümkün olabilir ancak tarayıcılar şu anda buna izin vermemektedir. Uygulamada bu iki yöntem genellikle birlikte kullanılır. Teknik bilgi sahibi olmayan kullanıcılar, push mesajları ile bildirimler arasındaki farkı muhtemelen anlamaz. Bu koleksiyonda push bildirimleri derken, bir mesajın gönderilmesinin ardından bildirim olarak gösterilmesini kastediyoruz. Push mesajları derken push teknolojisini kastediyoruz. Bildirimler derken bildirim teknolojisini kastediyoruz.
Push bildirimleri neden kullanılır?
- Kullanıcılar için push bildirimleri, zamanında, alakalı ve doğru bilgiler alma yöntemidir.
- Web sitesi sahibi olarak push bildirimleri, kullanıcı etkileşimini artırmanın bir yoludur.
Push bildirimleri nasıl çalışır?
Push bildirimlerini uygulamayla ilgili temel adımlar şunlardır:
- Kullanıcıdan push bildirimi gönderme izni istemek için istemci mantığı ekleyin ve ardından istemci tanımlayıcı bilgilerini bir veritabanında depolanması için sunucunuza gönderin.
- Mesajları istemci cihazlara göndermek için sunucu mantığı ekleme.
- Cihaza gönderilen mesajları almak ve bunları bildirim olarak görüntülemek için istemci mantığı ekleme.
Bu sayfanın geri kalanında bu adımlar daha ayrıntılı olarak açıklanmaktadır.
Push bildirimi gönderme izni alma
Öncelikle web sitenizin, push bildirimi göndermek için kullanıcıdan izin alması gerekir.
Bu işlem, bir kullanıcı hareketiyle (ör. Do you want to receive push notifications?
isteğinin yanındaki Evet düğmesini tıklayarak) tetiklenmelidir. Bu onayı aldıktan sonra Notification.requestPermission()
numaralı telefonu arayın. Kullanıcının cihazındaki işletim sistemi veya tarayıcı, kullanıcının push bildirimleri etkinleştirmek istediğini resmi olarak onaylamak için muhtemelen bir tür kullanıcı arayüzü sunar. Bu kullanıcı arayüzü platformlara göre değişir.
İstemciyi push bildirimlerine abone etme
İzin aldıktan sonra web sitenizin, kullanıcıyı push bildirimlerine abone etme işlemini başlatması gerekir. Bu işlem, Push API kullanılarak JavaScript aracılığıyla yapılır. Abonelik işlemi sırasında herkese açık bir kimlik doğrulama anahtarı sağlamanız gerekir. Bu anahtar hakkında daha fazla bilgiyi aşağıda bulabilirsiniz. Abonelik sürecini başlattıktan sonra tarayıcı, daha sonra daha fazla bilgi edineceğiniz push hizmeti olarak bilinen bir web hizmetine ağ isteği gönderir.
Aboneliğin başarılı olduğu varsayılarak tarayıcı bir PushSubscription
objesi döndürür. Bu verileri uzun süreli olarak saklamanız gerekir.
Bu işlem genellikle bilgileri kontrol ettiğiniz bir sunucuya gönderip sunucunun bilgileri bir veritabanında depolaması şeklinde yapılır.
Push mesajı gönderme
Sunucunuz, push mesajını doğrudan istemciye göndermez. Push hizmeti bunu yapar. Push hizmeti, kullanıcınızın tarayıcı tedarikçisi tarafından kontrol edilen bir web hizmetidir. Bir istemciye push bildirimi göndermek istediğinizde push hizmetine bir web hizmeti isteği göndermeniz gerekir. Push hizmetine gönderdiğiniz web hizmeti isteği, web push protokolü isteği olarak bilinir. Web push protokolü isteği şunları içermelidir:
- Mesaja dahil edilecek veriler.
- Mesajın gönderileceği istemci.
- Push hizmetinin iletiyi nasıl yayınlaması gerektiğine dair talimatlar. Örneğin, itme hizmetinin 10 dakika sonra iletiyi gönderme denemelerini durdurması gerektiğini belirtebilirsiniz.
Normalde web push protokolü isteğini kontrol ettiğiniz bir sunucu üzerinden gönderirsiniz. Elbette, sunucunuzun ham web hizmeti isteğini kendisinin oluşturması gerekmez. Bu işlemi sizin için halledebilecek kitaplıklar (ör. web-push-libs) vardır. Ancak temel mekanizma, HTTP üzerinden bir web hizmeti isteğidir.
Push hizmeti isteğinizi alır, kimliğini doğrular ve push mesajını uygun istemciye yönlendirir. İstemcinin tarayıcısı çevrimdışıysa push hizmeti, tarayıcı çevrimdışı olana kadar push mesajını sıraya ekler.
Her tarayıcı istediği push hizmetini kullanır. Web sitesi geliştiricisi olarak bu konuda hiçbir kontrolünüz yoktur. Web push protokolü isteği standartlaştırılmış olduğundan bu bir sorun değildir. Başka bir deyişle, tarayıcı tedarikçisinin hangi push hizmetini kullandığıyla ilgilenmeniz gerekmez. Web push protokolü isteğinizin spesifikasyona uyduğundan emin olmanız yeterlidir. Spesifikasyonda, isteğin belirli üstbilgileri içermesi ve verilerin bayt akışı olarak gönderilmesi gerektiği gibi diğer konular da belirtilmiştir.
Ancak web push protokolü isteğini doğru push hizmetine gönderdiğinizden emin olmanız gerekir. Bu bilgileri, tarayıcı abonelik işlemi sırasında size döndürdüğü PushSubscription
verileri sağlar. PushSubscription
nesnesi şu şekilde görünür:
{
"endpoint": "https://fcm.googleapis.com/fcm/send/c1KrmpTuRm…",
"expirationTime": null,
"keys": {
"p256dh": "BGyyVt9FFV…",
"auth": "R9sidzkcdf…"
}
}
endpoint
alanının asıl adı push hizmetidir. endpoint
yolunun istemci tanımlayıcı bilgileri, push hizmetinin iletiyi tam olarak hangi istemciye göndereceğini belirlemesine yardımcı olur.
keys
, şifreleme için kullanılır. Bu konu aşağıda açıklanmıştır.
Push mesajını şifreleme
Bir push hizmetine gönderdiğiniz veriler şifrelenmelidir. Bu, itme hizmetinin istemciye gönderdiğiniz verileri görüntülemesini engeller.
Hangi push hizmetinin kullanılacağına tarayıcı tedarikçisinin karar verdiğini ve push hizmetinin teorik olarak güvenli olmayabileceğini unutmayın. Sunucunuz, web push protokolü isteklerini şifrelemek için PushSubscription
içinde sağlanan keys
öğesini kullanmalıdır.
Web push protokolü isteklerinizi imzalama
Push hizmeti, başkalarının kullanıcılarınıza mesaj göndermesini engellemenize olanak tanır. Teknik olarak bunu yapmanız gerekmez ancak Chrome'da en kolay uygulama için bu gereklidir. Firefox'ta isteğe bağlıdır. Diğer tarayıcılarda gelecekte bu işlem gerekebilir.
Bu iş akışında, uygulamanıza özgü bir özel anahtar ve genel anahtar bulunur. Kimlik doğrulama süreci kabaca şu şekilde işler:
- Özel ve herkese açık anahtarı tek seferlik bir görev olarak oluşturursunuz. Özel ve ortak anahtarın kombinasyonu uygulama sunucusu anahtarları olarak bilinir. Bu anahtarlar VAPID anahtarları olarak da adlandırılabilir. VAPID, bu kimlik doğrulama sürecini tanımlayan spesifikasyondur.
- JavaScript kodunuzdan bir istemciyi push bildirimlerine abone ettiğinizde herkese açık anahtarınızı sağlarsınız. Push hizmeti, cihaz için bir
endpoint
oluşturduğunda, sağlanan ortak anahtarıendpoint
ile ilişkilendirir. - Web push protokolü isteği gönderdiğinizde bazı JSON bilgilerini özel anahtarınızla imzalarsınız.
- Push hizmeti, web push protokolü isteğinizi aldığında, imzalı bilgilerin kimliğini doğrulamak için depolanan herkese açık anahtarı kullanır. İmza geçerliyse itme hizmeti, isteğin eşleşen özel anahtara sahip bir sunucudan geldiğini bilir.
Push mesajının teslimini özelleştirme
Web push protokolü istek spesifikasyonu, push hizmetinin push mesajını istemciye gönderme şeklini özelleştirmenize olanak tanıyan parametreleri de tanımlar. Örneğin, şunları özelleştirebilirsiniz:
- Push hizmetinin bir mesajı ne kadar süre boyunca yayınlamaya çalışacağını tanımlayan mesajın geçerlilik süresi (TTL).
- İletinin aciliyeti. Bu, push hizmetinin yalnızca yüksek öncelikli mesajlar göndererek istemcinin pil ömrünü koruması durumunda kullanışlıdır.
- Bir iletideki konu. Aynı konuyla ilgili bekleyen iletiler, en son iletiyle değiştirilir.
Gönderilen mesajları bildirim olarak alma ve görüntüleme
Web push protokolü isteğini push hizmetine gönderdikten sonra push hizmeti, aşağıdaki etkinliklerden biri gerçekleşene kadar isteğinizi kuyrukta tutar:
- İstemci internete bağlanır ve push hizmeti push mesajını yayınlar.
- Mesajın süresi dolar.
Bir istemci tarayıcı, itilen bir mesaj aldığında itilen mesaj verilerinin şifresini çözer ve hizmet işleyicinize bir push
etkinliği gönderir. Hizmet çalışanı, temel olarak web siteniz açık değilken veya tarayıcı kapalıyken bile arka planda çalışabilen JavaScript kodudur. Hizmet çalışanınızın push
etkinlik işleyicisinde, bilgileri bildirim olarak görüntülemek için ServiceWorkerRegistration.showNotification()
işlevini çağırırsınız.
Sonraki adımlar
- Web Push Bildirimlerine Genel Bakış
- Push bildirimleri nasıl çalışır?
- Kullanıcıları abone etme
- İzin kullanıcı deneyimi
- Web Push Kitaplıklarıyla Mesaj Gönderme
- Web Push Protokolü
- Push Etkinliklerini İşleme
- 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