Ana içeriğe atla

Genel Bakış

OneSignal, sitenizde Web SDK etkin olduğunda tarayıcınızın Geliştirici Araçları Konsolu’nda ayrıntılı hata mesajları sağlar. Sorun gidermeden önce, Web SDK Kurulumu bölümünü kontrol ederek şunları doğrulayın:
  • OneSignal JavaScript kod parçacığının sitenizin <head> bölümüne yerleştirildiğinden emin olun.
  • Service worker dosyalarının kök dizine düzgün bir şekilde yerleştirildiğinden ve HTTPS aracılığıyla erişilebilir olduğundan emin olun.
Yaygın sorunları gidermek ve entegrasyonunuzun düzgün çalıştığını doğrulamak için aşağıdaki adımları izleyin.

İlk sorun giderme adımları

1

Temiz bir tarayıcı profilinde test edin

Web sitenizi yeni bir tarayıcı profilinde açın.
2

Tarayıcı geliştirici araçlarını açın

F12 tuşuna basarak, sağ tıklayıp “Denetle”yi seçerek veya Görünüm > Geliştirici > JavaScript Konsolu’na giderek Geliştirici Konsolunu başlatın.
3

Abone olmayı deneyin ve hataları gözlemleyin

Sitenize abone olmayı deneyin ve hataları kontrol etmek için Konsolu kontrol edin. Ardından rehberlik için hatayı aşağıdaki listeyle eşleştirin.

Tarayıcınızın geliştirici araçlarını açın ve hataları inceleyin


Yaygın hata mesajları ve çözümler

Service worker hataları (403, 404)

[Service Worker Installation] Installing service worker failed TypeError: Failed to register a ServiceWorker for scope (‘https://www.yoursite.com/’) with script (‘https://www.yoursite.com/...’): A bad HTTP response code (403) was received when fetching the script.

Service worker kurulum hatasına örnek

403 veya 404 service worker hataları görüyorsanız, service worker dosyalarınız muhtemelen engellenmiş, yönlendirilmiş veya eksiktir.
  • Dosya kullanılabilirliğini onaylayın
    • Tarayıcıda service worker dosya URL’sini ziyaret edin. Yolu OneSignal panosundan Ayarlar > Push ve Uygulama İçi > Web bölümünde bulabilirsiniz.
    • Örnek yollar:
      • https://yoursite.com/OneSignalSDKWorker.js
      • https://yoursite.com/push/onesignal/OneSignalSDKWorker.js
    • WordPress kullanıyorsanız yol:
      • https://yoursite.com/wp-content/plugins/onesignal-free-web-push-notifications/sdk_files/OneSignalSDKWorker.js
  • Bunlar 403/404 döndürüyorsa veya yönlendirme yapıyorsa, push kurulumunuz çalışmayacaktır.
  • Dosya adları büyük/küçük harfe duyarlıdır ve herkese açık olarak erişilebilir olmalıdır.
Doğru kurulumu onaylamak için Service Worker Kurulum Kılavuzu bölümüne bakın.

Desteklenmeyen MIME türü

  • Service worker’ınız application/javascript olarak sunulmalıdır.
  • Dosyayı başka bir MIME türüyle (örneğin text/html) sunmak kaydın başarısız olmasına neden olur.

Service worker'da MIME türü hatası

Yönlendirmelere izin verilmez

  • OneSignal SDK dosyaları yönlendirme yapmamalıdır.
  • Sitenizle aynı origin’de barındırılmalıdırlar (CDN veya proxy alan adları kullanılamaz).

Konsolda yönlendirme hatası

Web Push yapılandırması yalnızca doğru site origin’inde kullanılabilir

  • Mevcut alan adınız OneSignal panosunda yapılandırılan site URL’siyle eşleşmiyor.
  • Protokol, alan adı ve alt alan adı tam olarak eşleşmelidir.

Site origin uyuşmazlığı hatası

OneSignal zaten tanımlanmış

  • SDK birden fazla kez başlatılıyor, genellikle WordPress eklenti kurulumunun manuel kod ile birleştirilmesinden kaynaklanır.

Yinelenen SDK başlatma hatası


Mobil web push sorun giderme

iOS - Gereksinimler için iOS’ta Safari Web Push bölümüne bakın. Android - Web push, desteklenen bir tarayıcı kullanarak Android mobil cihazlarda otomatik olarak çalışır.
  1. Öncelikle mobilde test etmeden önce sitenizin Desktop’ta çalıştığından emin olun.
  2. Android web’de zaten abone olmuş olabilirsiniz, ancak panomuz mobil web abonelerini masaüstü web abonelerinden ayırt etmez. Bir Android web abonesi, “Abonelikler” sayfasının Cihaz sütununda Linux armv8l olarak görünür.
  3. Tarayıcı uygulamasında Bildirimlerin etkin olup olmadığını kontrol edin. Örneğin, Android Ayarlar > Uygulama Yöneticisi > Chrome’da Chrome için. “Bildirimleri göster” seçeneğinin işaretli olduğundan emin olun.
  4. Önbelleğinizi Temizleyin. Mobilde tarayıcı önbelleğiniz doluysa, bu daha fazla sorgulamaya veya aboneliğe izin vermeyebilir.
  5. Bazı kullanıcılar, tarayıcı uygulamasını kaldırıp yeniden yüklemenin sorgunun gösterilmediği bir sorunu düzelttiğini bildirdi.

Safari Sorun Giderme

  1. Safari Yapılandırmasında ayarlanan Site URL’si, siteyi ziyaret ederken gördüğünüz ile tam olarak aynı olmalıdır. Örneğin, tarayıcıda https://www.yoursite.com görüyorsanız, bunu kurulum alanına eklemelisiniz. www ve www olmayan siteler farklı origin’lerdir.
  2. Safari 12.1+ kullanıcıların sorgu alabilmeleri için sitede bir eylem gerçekleştirmeleri gerektiğine dair yeni bir kural oluşturdu
Safari’de Slide Prompt kullanmalısınız. Bu nedenle Tipik Kurulumumuzu kullanırsanız, slide prompt her zaman yerel sorgdan önce gösterilir. Yalnızca yerel tarayıcı sorgusu kullanmak istiyorsanız, bir kullanıcı eylemini algılamak için kendi tetikleyicinizi kurmanız gerekecektir. Ardından sorguyu tetiklemek için Web SDK yöntemlerimizi çağırın.
  1. Son olarak, sitenizi ilk kez gören bir kullanıcı gibi görmek ve tekrar abone olmayı denemek için Önbelleğinizi temizleme ve push izinlerini sıfırlama işlemini deneyin.

Safari simgeleri veya site adı değişmiyor

Safari’nin özel web push uygulaması nedeniyle, site adınız ve simge resminiz, kullanıcının bilgisayarına yerel olarak indirilen ve depolanan statik kaynaklar olarak ele alınır. Yeni site adları ve yeni resimler güncellenmez veya indirilmez. Ne yazık ki bu eski kaynaklarla abone olan herkesin önbelleğinizi temizlemesi ve push izinlerini sıfırlaması ve yeniden abone olmak için siteye dönmesi gerekecektir.

Önbelleğinizi temizleme ve push izinlerini sıfırlama

Daha fazla ayrıntı için Önbelleğinizi temizleme ve push izinlerini sıfırlama bölümüne bakın.

Tarayıcı Geliştirici Araçlarını kullanarak hata ayıklama

Tarayıcının geliştirici araçları, web sayfanızdaki web SDK ile etkileşim kurmak ve günlüğü etkinleştirmek veya kendinize kolayca test bildirimleri göndermek için kullanılabilir.
1

Tarayıcı Geliştirici Araçları Konsoluna erişin

Geliştirici konsoluna erişim

Masaüstü Hata Ayıklama:
  • Chrome: Sayfada sağ tıklayın, Denetle’ye tıklayın ve açılan popup penceresinin Konsol sekmesine tıklayın.
  • Firefox: Sayfada sağ tıklayın, Öğeyi denetle’ye tıklayın ve açılan popup penceresinin Konsol sekmesine tıklayın.
  • Safari: Safari → Tercihler → Gelişmiş’e gidin ve Menü çubuğunda Geliştir menüsünü göster seçeneğinin işaretli olduğundan emin olun. Ardından, web sayfanızda sağ tıklayın, Öğeyi denetle’ye tıklayın ve açılan popup penceresinin Konsol sekmesine tıklayın.
Android Hata Ayıklama:
  • Android’de Chrome: USB Hata Ayıklamayı Etkinleştirin, cihazınızı bilgisayarınıza bağlayın ve Masaüstü Chrome tarayıcınızda chrome://inspect#devices ile Geliştirici Araçlarına erişin.
  • Android’de Firefox: USB Hata Ayıklamayı Etkinleştirin, cihazınızı bilgisayarınıza bağlayın ve Masaüstü Firefox tarayıcınızda about:debugging ile Geliştirici Araçlarına erişin.
2

Web SDK günlüğünü etkinleştirin

Artık geliştirici araçları Konsolunda komutlar çalıştırabilmelisiniz.Aşağıdaki kodu çalıştırın:
OneSignal.Debug.setLogLevel('trace');
Sonuç olarak undefined görmelisiniz.Eğer şunu görüyorsanız:
Uncaught ReferenceError: OneSignal is not defined(…) ReferenceError: OneSignal is not defined
O zaman OneSignal web sayfanızda aktif değildir veya top çerçeve bağlamına geçmeniz gerekir (yukarıdaki ekran görüntüsüne bakın).Artık web SDK’mızın hata ayıklama günlüğü etkinleştirildiğine göre, lütfen sekmeyi kapatın ve aynı sayfaya yeni bir sekme açın (sayfayı yenilemek bazı SDK olaylarımızı tetiklemek için yeterli değildir). Konsolda çok fazla çıktı görmelisiniz.

Ayrıntılı SDK günlükleriyle konsol

Bu ek günlüğü her zaman bu kodu girerek devre dışı bırakabilirsiniz:
OneSignal.Debug.setLogLevel('warn');
3

Abone olup olmadığınızı kontrol edin

Konsolda çalıştırın:
function getUserInfo() {
	console.log('getUserInfo()');
	Promise.all([
		OneSignal.Notifications.permission,
		OneSignal.User.PushSubscription.id,
		OneSignal.User.PushSubscription.token,
		OneSignal.User.PushSubscription.optedIn,
		OneSignal.context.serviceWorkerManager.getActiveState(),
	])
		.then(
			([
				isSubscribed,
				subscriptionId,
				pushToken,
        optedIn,
				serviceWorkerActive,
			]) => {
        console.log('What is the current URL of this page?', location.href);
         console.log(
					"Is a service worker registered and active? (should be false on Safari, otherwise should be 'OneSignal Worker')?",
					serviceWorkerActive
				);
        console.log('')
        console.log('Are you subscribed, in the browser?', isSubscribed)
        console.log('Are you opted-in, in OneSignal?' , optedIn);
				console.log('');
				console.log('What is your OneSignal Subscription ID?', subscriptionId);
				console.log('What is your Push Token?', pushToken);

			}
		)
		.catch(e => {
			console.error('Issue determining whether push is enabled:', e);
		});
}
getUserInfo();
Abone olup olmamanıza bağlı olarak, aşağıdakine benzer bir sonuç görmelisiniz:
What is the current URL of this page? http://localhost:8080/
Is a service worker registered and active? (should be false on Safari, otherwise should be 'OneSignal Worker')? OneSignal Worker

Are you subscribed, in the browser? true
Are you opted-in, in OneSignal? true

What is your OneSignal Subscription ID? 22ff6b0d-60e1-469d-b667-005274204322
What is your Push Token? https://fcm.googleapis.com/fcm/send/drKvxiBc9Eo:APA91bFoa88bzkuudYFmuyNb8uIA60dI44SnBbXi0_4GAYa2Ln07XzrOs1-k5KVxrwKf8oVxBvzIXVN-44bamCRkaQ6cFODy7-8slGgnV3i2OqS3EgYrzU6VcO1KZaBHacsZhqvWqIRv
4

Kendinize test bildirimi gönderin

Yalnızca abone olduysanız (yukarıdaki bölüme bakın), kendinize bir test bildirimi gönderebilirsiniz. Ayrıntılar için Test Aboneliklerini Bulma ve Ayarlama bölümüne bakın.

Chrome bildirimlerini almama sorununu giderme

Not: Lütfen bu adımları sırayla tamamlayın.
1

Bir test bildirimi almayı denemek için yukarıdaki 1 - 4 numaralı adımları izleyin

  • Adım #3 için, abone oldunuz mu? Değilseniz, burada durun, bu özel talimatları izleyerek site verilerinizi tamamen temizleyin ve ardından bildirim almak için sitenize yeniden abone olun. Gerçekten abone olduğunuzu doğrulamak için daha sonra adım #3’ü tekrar çalıştırın. Site verilerini temizleme talimatlarını izlerken, lütfen sitenize ait tüm sekmeleri kapatmayı veya tarayıcınızı yeniden başlatmayı unutmayın, çünkü Chrome, sitenize ait tüm mevcut sekmeler kapatılana kadar sitenin depolamasına erişilmesini engeller.
  • Adım #4 için, bir test bildirimi aldınız mı? Aldıysanız, işiniz bitti!
2

OneSignal panonuzdaki Teslimat Sayfasını kontrol edin

Abone olduysanız ancak bir test bildirimi almadıysanız, lütfen kendinize gönderdiğiniz test bildirimlerinin en üstte görünüp görünmediğini görmek için OneSignal panonuzun Teslimat Sayfasını ziyaret edin.
3

Mesaj teslimatını kontrol etmek için chrome://gcm-internals kullanın

Abone olduysanız, bir test bildirimi almadıysanız, ancak mesajın teslim edildiğini (yeşil renkli) görüyorsanız, lütfen Chrome’da chrome://gcm-internals’ı açın.Sol üstteki “Start Recording” düğmesine tıklayın. “Connection State: CONNECTED” gördüğünüzden emin olun.Bunu açık bırakın ve kendinize bir push gönderin (kendinize bir test bildirimi göndermek için yukarıdaki adım #4’ü izleyin).Aldıysanız “Receive Message Log“‘da bir şey görmelisiniz.

GCM internals günlüğü

  • “Data msg received” görmüyorsanız, o zaman Chrome tarayıcınız bildirimi hiç almıyor demektir. Lütfen bunu destek ekibimize bildirin.
  • “Data msg received” görüyorsanız ancak yine de bir bildirim almadıysanız, adım #4’e geçin.
4

Service worker'ı hata ayıklamak için chrome://serviceworker-internals kullanın

chrome://serviceworker-internals’ı ziyaret edin.Scope: https://your-site.com araması yapın.Aşağıdaki gibi Inspect veya Start -> Inspect’e tıklayın. Bir Chrome Geliştirici Araçları popup’ı görünecektir.

Service worker'ı inceleme

Service worker’ımıza ait Chrome Geliştirici Araçları popup’ında, Console sekmesine tıklayın ve OneSignalWorker.log.trace(); komutunu çalıştırın. undefined döndürmelidir. Service worker’ımızdan gelen tüm mesajlar artık bu popup’ta görünmelidir.
5

Konsol çıktısını yakalayın ve destek ekibiyle iletişime geçin

Service worker’ın Geliştirici Araçları popup’ından ana sayfanızın Geliştirici Araçları konsoluna (adım 2’de kullanılan konsol) geri dönün. Kendinize başka bir test bildirimi gönderin. Hala bildirimi görmüyorsanız, yeni hatalar veya mesajlar için konsol çıktısını gözden geçirin. Bu bilgiyi destekle paylaşmak için:
  • Konsol içinde sağ tıklayın.
  • Günlük dosyasını dışa aktarmak için Farklı kaydet … seçeneğini seçin.
  • Bu dosyayı ekleyin ve daha fazla yardım için sohbet desteğimizle iletişime geçin.
Need help?Chat with our Support team or email support@onesignal.comPlease include:
  • Details of the issue you’re experiencing and steps to reproduce if available
  • Your OneSignal App ID
  • The External ID or Subscription ID if applicable
  • The URL to the message you tested in the OneSignal Dashboard if applicable
  • Any relevant logs or error messages
We’re happy to help!