Web push ile ilgili bir sorunla karşılaştığınızda hata ayıklamak veya yardım alın. Bu belgede, sık karşılaşılan sorunlardan bazıları ve düzeltilmesi gerekenlerle ilgili yapmanız gerekir.
Hata ayıklama aktarımına geçmeden önce, dosyanın güncel olmaması, kaydedilememesi veya genellikle olağan dışı bir davranış olduğu anlamına gelir. Bir hizmet çalışanları için hata ayıklama ile ilgili muhteşem bir belge yeni başlayanlara göz atmanızı kesinlikle öneririm. olabilir.
Web push geliştirilirken ve test edilirken işaretlenecek iki farklı aşama vardır: Her birinin kendine özgü ortak sorunları / sorunları var:
- İleti Gönderme: İleti gönderme işleminin başarılı olduğundan emin olun.
201 HTTP kodu alırsınız. Değilseniz :
- Yetkilendirme Hataları olup olmadığını kontrol edin: Yetkilendirme belgesi alırsanız bkz. Yetkilendirme Sorunları bölümüne bakın.
- Diğer API Hataları: 201 olmayan bir durum kodu yanıtı alırsanız için HTTP Durum Kodları bölümüne bir kılavuz bulmanız gerekir.
- Mesaj alma: Mesajı başarıyla gönderebiliyorsanız
ancak ileti tarayıcıda alınmamaktadır:
- Şifreleme Sorunlarını Kontrol Edin: Yük Şifreleme Sorun Bölümü.
- Bağlantı sorunlarını kontrol edin: Sorun Chrome'da varsa bir bağlantı olabilir. Bağlantı Sorunları bölümüne bakın konulu videomuzu izleyin.
Push mesajı ve ilgili bölümleri gönderip alamıyorsanız Bu doküman, sorunun giderilmesine yardımcı olmuyorsa, bazı durumlarda hatasına neden olabilir. Bu durumda, Hata Raporları Oluşturma bölümünü, kalite sürecini hızlandırmak için gerekli tüm bilgileri içeren adımları uygulayın.
Başlamadan önce vurgulamak istediğim bir konu da Firefox ve Mozilla AutoPush Hizmeti'nde çok iyi hata mesajları vardır. Sıkışırsanız sorunun ne olduğundan emin değilseniz, Firefox'ta test edin ve daha yararlı bir hata mesajı alabilirsiniz.
Yetkilendirme sorunları
Yetkilendirme sorunları, geliştiricilerin ve web push ile başlayın. Bu sorun, normalde yalnızca bir istemcinin Uygulama Sunucusu Anahtarları (VAPID anahtarları olarak da bilinir) ziyaret edin.
Firefox'ta ve Chrome'da push kullanımını desteklemenin en kolay yolu,
subscribe()
görüşmesinde applicationServerKey
. Kötü tarafı ise
kullanıcı arabiriminiz ile sunucunun anahtarları arasındaki herhangi bir tutarsızlık
yetkilendirme hatası.
Chrome ve FCM'de
Push hizmeti olarak FCM'yi kullanan Chrome'da
Farklı dönüşüm aralıkları için FCM'den UnauthorizedRegistration
yanıt
Bunların tümü uygulama sunucusu anahtarlarını içerir.
Aşağıdakilerin herhangi birinde UnauthorizedRegistration
hatası alırsınız
durumlar:
- FCM'ye yapılan istekte
Authorization
başlığı tanımlayamazsanız. - Kullanıcıyı abone olmak için kullanılan uygulama anahtarı, kullanılan anahtarla eşleşmiyor tıklayın.
- Geçerlilik süresi JWT'nizde geçersizdir (ör. geçerlilik süresinin 24 saati aşması veya JWT'nin süresi doldu.
- JWT hatalı biçimlendirilmiş veya geçersiz değerler içeriyor.
Hata yanıtı tam olarak aşağıdaki gibi görünür:
<html>
<head>
<title>UnauthorizedRegistration</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<h1>UnauthorizedRegistration</h1>
<h2>Error 400</h2>
</body>
</html>
Chrome'da bu hata mesajını alırsanız Firefox'ta test etmeyi düşünün sorun hakkında daha fazla bilgi sağlayıp sağlamayacağını gösterir.
Firefox ve Mozilla AutoPush
Firefox ve Mozilla AutoPush,
Authorization
sorun.
Ayrıca, Unauthorized
Authorization
üstbilgisi push işleminize dahil edilmezse Mozilla AutoPush
isteğinde bulunabilirsiniz.
{
"errno": 109,
"message": "Request did not validate missing authorization header",
"code": 401,
"more_info": "http://autopush.readthedocs.io/en/latest/http.html#error-codes",
"error": "Unauthorized"
}
JWT'nizdeki geçerlilik süresi sona erdiyse,
Jetonun şu özelliklere sahip olduğunu açıklayan bir mesaj içeren Unauthorized
hatası:
süresi doldu.
{
"code": 401,
"errno": 109,
"error": "Unauthorized",
"more_info": "http://autopush.readthedocs.io/en/latest/http.html#error-codes",
"message": "Request did not validate Invalid bearer token: Auth expired"
}
Uygulama sunucusu anahtarları, kullanıcının kullandığı
abone olundu ve Yetkilendirme başlığı imzalandığında Not Found
hatası döndürülür:
{
"errno": 102,
"message": "Request did not validate invalid token",
"code": 404,
"more_info": "http://autopush.readthedocs.io/en/latest/http.html#error-codes",
"error": "Not Found"
}
Son olarak, JWT'nizde geçersiz bir değer varsa (örneğin, "alg" değeri beklenmedik bir değerdir) Mozilla'da Mozilla'dan aşağıdaki hatayı alırsınız Otomatik aktarma:
{
"code": 401,
"errno": 109,
"error": "Unauthorized",
"more_info": "http://autopush.readthedocs.io/en/latest/http.html#error-codes",
"message": "Request did not validate Invalid Authorization Header"
}
HTTP durum kodları
push hizmetini kullanabilirsiniz. Aşağıda, HTTP durum kodlarının listesi ve bunlarla ilgili olarak ne anlama geldikleri verilmiştir: web aktarımı.
Durum Kodu | Açıklama |
---|---|
429 | Çok fazla istek var. Uygulama sunucunuz push hizmetini kullanabilirsiniz. Hizmetten gelen yanıtta "Yeniden Deneme-Sonra" ifadesi bulunmalıdır. başlığı isteği göndermenin ne kadar süreceğini gösterir. |
400 | Geçersiz istek. Başlıklarınızdan biri geçersiz veya kötü biçimlendirilmiş. |
404 | Bulunamadı. Bu durumda, kullanıcının yeniden abone olması için bir fırsat beklenmektedir. |
410 | Gitti. Abonelik artık geçerli değil ve abonelikten kaldırılması gerekiyor. arka uç. Bu kayıt, aynı zamanda "unsubscribe()" çağrısı yaparak `PushSubscription`. |
413 | Yük boyutu çok büyük. Push hizmetinin gerektirdiği minimum boyut yükü 4096 bayt (veya 4 KB) boyutunda olduğundan emin olun. Daha büyük herhangi bir değer bu hataya neden olabilir. |
HTTP durum kodu bu listede yoksa ve hata mesajı görünmüyorsa yardımcı olacaksa, Web Push Protokolü teknik özelliklerine durum koduna referans verilir. Ayrıca, bu kod emin olmanız gerekir.
Yük şifreleme sorunu
Push mesajını başarıyla tetikleyebiliyorsanız (örneğin, web'e mesaj gönderebiliyorsanız) 201 yanıt kodu alabiliyorsanız) ancak push etkinliği yardımcı oluyorsa bu genellikle tarayıcının başarısız olduğunu gösterir. ve aldığı mesajın şifresini çözer.
Bu durumda, Firefox'un Geliştirici Araçları'nda bir hata mesajı göreceksiniz. şu şekilde çalışır:
Sorunun Chrome'da olup olmadığını kontrol etmek için aşağıdakileri yapın:
- about://gcm-internals sayfasına gidin ve "Kaydı Başlat"ı tıklayın düğmesini tıklayın.
- Bir push mesajı tetikleyin ve "İleti Şifre Çözme Hatası Günlüğü"nün altına bakın.
Yükün şifresinin çözülmesiyle ilgili bir sorun varsa bir hata mesajı görürsünüz
olana benzer. (AES-GCM decryption failed
dikkat edin
mesajını görürsünüz.)
Sorununuz buysa şifrelemede hata ayıklamaya yardımcı olabilecek birkaç araç vardır:
Bağlantı sorunu
Service Worker'ınızda push etkinliği almıyorsanız ve şifre çözme hatası görüyorsanız tarayıcı kullanıma sunuyoruz.
Chrome'da tarayıcının ileti alıp almadığını
'Alın İleti Günlüğü' (sic) dili: about://gcm-internals
.
İletiyi zamanında göremiyorsanız,
tarayıcınızın bağlantı durumu CONNECTED
:
"BAĞLI" değilse mevcut profilinizi silmeniz ve yeni bir hesap oluşturun. Eğer Sorun yine de çözülmez. Lütfen aşağıda önerildiği gibi bir hata raporu gönderin.
Hata raporlarını yükseltme
Yukarıdakilerin hiçbiri sorununuzu gidermiyorsa ve sorun olabilir, lütfen karşılaştığınız tarayıcıyla ilgili şununla ilgili sorun:
Chrome için sorunu şurada iletebilirsiniz: https://bugs.chromium.org/p/chromium/issues/list Firefox için sorunu şurada ele almanız gerekir: https://bugzilla.mozilla.org/
İyi bir hata raporu sağlamak için aşağıdaki ayrıntıları sağlamanız gerekir:
- Test ettiğiniz tarayıcılar (ör. Chrome sürüm 50, Chrome sürüm 51, Firefox Firefox sürüm 51).
- Sorunu gösteren bir
PushSubscription
örneği. - Örnek istekleri (yani, aktarma işlemine ağ isteklerinin içeriği) ekleyin hizmetini kullanabilirsiniz.
- Ağ isteklerinden gelen örnek yanıtları da ekleyin.
Tekrarlanabilir bir örnek (kaynak kodu veya barındırılan web) sağlayabilirseniz genellikle sorunu teşhis edip çözmeyi hızlandırır.
Yakında gidilecek yerler
- Web Push Bildirimine Genel Bakış
- Push'un İşleyiş Şekli
- Kullanıcıya abone olma
- Kullanıcı deneyimine izin verme
- Web Push Kitaplıklarıyla İleti Gönderme
- Web Push Protokolü
- Push Etkinliklerini Yönetme
- Bildirim Görüntüleme
- Bildirim Davranışı
- Yaygın Bildirim Kalıpları
- Push Bildirimleri ile ilgili SSS
- Sık Karşılaşılan Sorunlar ve Hata Bildirme