Google Chrome sürüm 42 aracılığıyla Push API'yi desteklediğinden Google sunucuları GCM'yi kullanma Bildirimlere erişmek için bu istemleri muhtemelen görmüşsünüzdür. Erişime izin verirseniz, site size bildirim gönderebilir. Bu özellik yepyeni ve çok az kişi biliyor, ancak bence zaten büyük dezavantajları var:
  • Her site tarayıcıda izin ister, şimdi kaç kaynağın size bildirim gönderebileceğini kontrol etmek zordur, her birinin ayrı ayrı uyanan kendi arka plan süreci vardır, alınan bildirim veya filtreleme geçmişi yoktur, arasında abonelik senkronizasyonu yoktur. cihazlar
  • Sitelerin doğrudan cihazlara bildirim göndermesi, cihaz veritabanının alaka düzeyini izlemesi, her kullanıcının cihazını ayrı ayrı izlemesi gerekir.
  • Bu özellik yalnızca SSL bulunan sitelerde çalışır.

Tüm bu işlevlerle ilgilenen bir ara hizmet, ortaya çıkan sorunları çözebilir.

biraz teori

Bu işlevi gerçekten yaptığım ana makale bulunabilir
Kısacası, tarayıcı bir Hizmet Çalışanı oluşturur (Chrome 40'tan beri mevcuttur), bu JS'de bir arka plan işlemidir. Sürekli arka planda çalışmaz, dışarıdan gelen çeşitli isteklere yanıt verir. Örneğin, bir push mesajı geldiğinde. Tabii ki, o gerektirmez sayfayı aç. Ayrıca, tarayıcı kapalı olsa bile çalışır (tamamen kapalı değil, arka planda.)

Bir Push mesajı geldiğinde, tarayıcı bildirimleri gösterir. Bu kadar. Bu, push bildirimlerinin alınmasını herhangi bir uygulama olmadan tam olarak uygulamanıza olanak tanır, ayrıca mobil kromda android üzerinde çalışır! Bariz eksikliklerin arasında tespit edilebilir şu an bir push mesajında ​​bir payload göndermenin mümkün olmaması, yani. mesajın kendisi. Google bunu güvenlik sorunlarına bağlar ve Chrome 44'te sorunun tamamen çözüldüğünü ve tarayıcının verileri doğrudan alabileceğini bildirir. Ayrıca, bazı raporlara göre, tarayıcı kapatılmışsa, istek ona ulaşmayacaktır. Bu sorun, bir sonraki mesaj alındığında onaylanmayan tüm bildirimlerin atılmasıyla çözülür.

PushAll sorunu nasıl çözer?

Bir web sitesi olmadan bile Push API aracılığıyla bildirim gönderebilirsiniz. Yani, sunucudan curl aracılığıyla veya bir RSS beslemesi bağlayarak manuel olarak bir kanal oluşturabilir ve bildirimler gönderebilirsiniz. Bu durumda, kullanıcı PushAll sitesine gönderme erişimine izin verir.
Aynı zamanda geliştiricinin bildirimi kime gönderdiğini düşünmesine gerek yoktur. Bir Android uygulamasında, bir krom eklentisinde veya doğrudan Push API aracılığıyla. Bir düzine kullanıcıya mesaj gönderebilir ama aslında her kullanıcının 2-3 cihazının her birine gidecektir. Gelecekte bu, diğer tarayıcıları ve iOS ve WP gibi diğer platformları içerecektir.

Test yapmak

İşlev daha dün yazıldı ve bu nedenle test edilmesi gerekiyor.

Push API aracılığıyla bildirimleri test etmek için PushAll.ru web sitesine gitmeniz ve Google hesabınızı kullanarak giriş yapmanız gerekir.

Giriş yaptıktan hemen sonra kanal dizinine yönlendirileceksiniz. Sağ üstte yeni özelliği açan bir geçiş var.

Etkinleştirildiğinde, Chrome sizden bildirimlere erişmenizi ister. Bundan sonra, profil bölümüne gitmeniz ve cihaza "ping" yapmanız gerekir.

Bana kişisel olarak veya yorumlarda bildirimlerin nasıl çalıştığını yazın. Bazı kişilerin bildirimlerle ilgili sorunları vardı ve durumu düzeltmek istiyorum. Ayrıca telefonunuzdaki bildirimleri kontrol edin. Android akıllı telefon. Test ederken, katalogda birkaç ilginç kanal bulacağınızı düşünüyorum.

Soru kalmaması için hemen: kanallardan tüm bildirimleri almak gerekli değildir. Kanala abone oldum, tekrar açtım - filtreyi açtım, girdi anahtar kelimeler. Sizin için önemli olan konular için öncelikle bildirimler anında cihazlara gönderilecek ve geri kalanını sitelerin kendilerinden okuyabilirsiniz (bu örneğin SoHabr kanalı veya dizi kanalları için geçerlidir)

umutlar

Bu özellik, geniş bir kullanıcı kitlesine ulaşmanızı sağlar. Birçok kişi bir uygulama veya eklenti yüklemeyi zor buluyor, ancak birkaç düğmeye basmak zor değil.
İleride siteler için özel bir widget yazacağım. Tek bir tıklamayla 4 işi aynı anda yapmak mümkün olacak.
  • Kayıt ol.
  • İçeri gel
  • Abone olmak
  • Tarayıcıda Push API bildirimlerini etkinleştirin.
Yani, kullanıcı düğmeye basacak, bir Google hesabına erişmesi istenecek, bildirimlere erişmesi istenecek - hepsi bu. Kullanıcı bildirim almaya hazırdır. Ayrıca, kullanıcı daha sonra başka bir platform için uygulamayı indirirse, abonelikten çıkana kadar sitenizden bildirim almaya devam edecektir. kişisel hesap. Aynı zamanda, hizmetim bile göndermenize izin veriyor mobil cihazlar uygulamayı yüklemeden bildirimler!

Push - bildirim, nedir? Bu, belirli sitelere girdikten sonra, tarayıcı penceresinin sağ üst veya sol köşesinde görünen, haberlere, site güncellemelerine veya ziyaret ettiğiniz portaldaki diğer değişikliklere abone olmayı teklif eden bir bildirim türüdür. Genel olarak, basitçe söylemek gerekirse, bu siteye abone olmak için bir çağrı içeren bir açılır penceredir.

Kesinlikle hiçbir şekilde aboneliklere karşı değilim. Örneğin, seviyorsanız ve size göreyse faydalı malzeme Web sitemizde yayınlanan , aynı RSS'yi kullanarak veya mail abonelik formunu kullanarak kolayca bize abone olabilir ve ayrıca bize katılabilirsiniz. VC grubu veya bizi takip edin Youtube. Ve en önemlisi, bunu kendi inisiyatifinizle yapabilirsiniz, çünkü " kelimesini içeren bir pencere değil. Abone ol, abone ol, abone ol».

Bu tür push bildirimlerinin popülaritesi artmaya başlıyor ve bunun sonucunda giderek daha fazla site benzerlerini kendi başlarına tanıtmaya çalışıyor. Eminim tüm haber sitelerinde bu özellik uzun süredir aktiftir.

En şaşırtıcı olan şey, bu tür bildirim modasının yeni ivme kazanmaya başlaması ve şimdiden herkesten oldukça sıkılmış olmasıdır. Birçoğu onları aynı şeyle karşılaştırır müdahaleci reklam ve yalnızca araya giren ve rahatsız eden açılır pencereler.

Bu eğitimde, tarayıcı ayarlarınızda abonelik bildirimini nasıl kapatacağınızı ve bu can sıkıcı açılır pencereden sonsuza kadar nasıl kurtulacağınızı göstereceğim.

Mozilla Firefox'ta push bildirimlerini devre dışı bırakma

Prensip olarak, hemen hemen tüm tarayıcılarda bildirimlerin görüntülenmesini kapatmak doğrudan ayarlarda gerçekleşir. Ancak, Firefox'un bir istisna olduğu ortaya çıktı, evet, ayarlarda, içerik ayarlarındaki "Rahatsız etmeyin" onay kutusunu işaretleyerek bildirimi kapatabilirsiniz, ancak bunlar yalnızca tarayıcıyı yeniden başlatana kadar engellenir.

Firefox'u yeniden açar açmaz, önceden belirlediğiniz işaretin işareti otomatik olarak kaldırılır ve her şey baştan başlar. Tabii ki, bu seçenek herkese uygun olmayacak, bu nedenle push bildirimlerini bir kez ve herkes için devre dışı bırakmak isteyen bu tür kullanıcılar için aşağıdakileri yapmalısınız:

Yanlış olarak ayarladığınız değer, artık anında iletme bildirimleri almak için abonelikle uğraşmayacağınız anlamına gelir.

Google Chrome'da push bildirimlerini engelleme

Chrome'da bildirimleri kapatmak çok daha kolaydır çünkü bunu normal ayarlarda yapabilirsiniz ve tarayıcı yapılandırmasına girmeniz gerekmez.


Gerekirse, tarayıcıyı yeniden başlatır ve ziyaret ettiğiniz siteden bildirim almak için sürekli açılan tekliflerin olmamasından memnun oluruz.

Yandex tarayıcısında push bildirimlerinden kurtulma

Bir sonraki daha az ünlü Yandex tarayıcısı olmayacak. Elbette birçok kişi bu tarayıcıyı oluşturmak için Chrome'dakiyle aynı motorun kullanıldığını biliyor, bu nedenle ayarlar bile neredeyse aynı.


Örneğin, ayarlarım bir nedenden dolayı sadece ikinci kez kaydedildi, neyle bağlantılı olduğunu bilmiyorum, belki de “Bitir” düğmesi yerine haç üzerine tıkladım ve pencereyi kapattım, sonucu olarak hangi ayarlar kaydedilmedi. Ana şey, ikinci kez her şeyin yolunda gitmesi ve bildirimlere abone olma isteğinin ortadan kalkması.

Opera'da push bildirimlerini devre dışı bırakmak mümkün mü?

Ve tabii ki operayı atlamayacağız. Çok sayıda kullanıcının hala kullanmayı tercih ettiğini biliyorum. Bu nedenle, Opera için push bildirimlerini devre dışı bırakmak için bir talimat.


Genel olarak, ayarlar önceki tarayıcılardan çok farklı değil, ancak prensipte bu önemli değil, asıl mesele şu ki, artık siteden bildirim alma talepleri artık bizi rahatsız etmeyecek.

Push (push) bildirimleri nasıl devre dışı bırakılır Yandex tarayıcısı, Chrome, Firefox ve Opera

Push bildirimleri nasıl kapatılır - bu soru, İnternet'teki birçok siteye giriş yaptıktan sonra tarayıcıda bildirimleri gören bazı kullanıcıları endişelendiriyor. Push teknolojisi, İnternet'teki bilgileri sağlayıcıdan, bu durumda siteden bu sitenin kullanıcısına dağıtmak için tasarlanmıştır.

Site ziyaretçilerini haberler hakkında, özellikle de yeni makalelerin yayınlanması hakkında bilgilendirmek için site için push bildirimleri gereklidir. Bu durumda ziyaretçi siteden bildirimleri zamanında alır ve haberleri anında okuyabilir.

Site adına bildirimler, bildirimlerin kullanıcıların bilgisayarlarına teslim edilmesini organize eden bir üçüncü taraf hizmeti kullanılarak gönderilir.

Bilgisayarda anında iletme bildirimi nedir? Site ziyaretçisi aşağıdakilerden iletişim almayı kabul ederse bu kaynak, daha sonra zaman zaman bu web sitesinin haberleriyle ilgili bildirimler kullanıcının masaüstünde görünür.

Push bildirimleri nasıl çalışır?

Bildirim gönderme işlevi etkin olan bir siteyi ziyaret ederken, ziyaretçi her seferinde "İzin Ver" veya "Engelle" düğmelerine tıklamanın önerildiği bildirimlerin görüntülenmesine izin vermek için bir istek görür. Düğmelerin isimleri farklı olabilir ama anlamı her yerde aynıdır.

Anlık bildirim istek penceresi küçük olduğu ve siteye göz atmayı engellemediği için site ziyaretçisi bu açılır pencereyi yok sayabilir.

Bu siteden bildirim gönderen hizmete bağlı olarak, bu tür pencerelerin görünümü farklıdır.

"İzin Ver" düğmesine tıklayarak, bilgisayarınıza push mesajları almayı kabul etmiş olursunuz.

Bildirim alanında, kullanıcının bilgisayarının masaüstünde bu web sitesindeki haberlerle ilgili bildirimler görünecektir. Genellikle bu, yeni bir makalenin yayınlanmasıyla ilgili bir mesajdır. Bazı siteler uyarı gönderme, her şeyi arka arkaya bildirme, bazen de gereksiz bilgiler gönderme özelliğini kötüye kullanır.

Bir push bildirimi aldıktan sonra, kullanıcı makaleyi okumak için siteye gidebilir veya bu mesajı görmezden gelerek bildirimi kapatabilir. Sitelerden gelen bu tür bildirimler, bildirim alanında görüntülendiğinden ve kısa bir süre sonra kendi kendine kapandığından pratik olarak bilgisayardaki çalışmayı engellemez.

Bu siteden uyarı gönderme izni talebinin bu web sitesini tekrar ziyaret ettiğinizde artık görünmemesi için "Engelle" düğmesini tıklayın.

Halihazırda belirli bir siteden push mesajları alıyorsanız, kullanıcı kendi tarayıcılarında push bildirimlerini devre dışı bırakabilir ve bu durumda bilgisayarında bildirim almaya izin verilir.

Bir uyarı aldıktan sonra push bildirimleri nasıl kaldırılır

Birçok bildirimde, bildirim gönderen hizmetin ayarlarına bağlı olarak, doğrudan açılan mesajın penceresinde push bildirimlerini devre dışı bırakabilirsiniz.

Bunu yapmak için ayarlar simgesine (dişli) tıklayın ve ardından "Siteden gelen bildirimleri kapat" seçeneğini seçin.

Bundan sonra, bu siteden gelen bildirimler artık bilgisayarınızda görünmeyecektir.

Google Chrome'da push bildirimleri nasıl devre dışı bırakılır

Google Chrome tarayıcısının ayarlarını girin, fare tekerleğini aşağı kaydırın, "Gelişmiş" bağlantısını tıklayın.

"Gizlilik ve Güvenlik" bölümünde, "Site Ayarları" düğmesine tıklayın. Açılan "Site Ayarları" penceresinde "Bildirimler" bölümünü bulun.

Burada sitelerden uyarı almayı ayarlayabilirsiniz. Varsayılan olarak, "Göndermeden önce izin iste (önerilir)" seçilidir.

Push bildirimlerini kaldırmak için Google tarayıcı Chrome, "Sitelerde uyarı gösterme" öğesini etkinleştirin.

Belirli bir siteden uyarı almayı önlemek için "Engelle" parametresinin karşısında bulunan "Ekle" düğmesini tıklayın.

"Site ekle" penceresinde site adresini girin ve ardından "Ekle" düğmesini tıklayın.

Push mesajlarının alınmasını yapılandırmak için, "İzin Ver" seçeneğinin karşısında bulunan "Ekle" düğmesine tıklayın.

Açılan pencerede, istediğiniz siteyi Google Chrome tarayıcısında bildirim almanıza izin verilen siteler listesine ekleyin.

Mozilla Firefox'ta push mesajları nasıl devre dışı bırakılır (1 yol)

Tarayıcı ayarlarını girin Mozilla Firefox, "Gizlilik ve güvenlik" bölümünü açın. "İzinler" seçeneğinde, "Bildirimler" seçeneğine gidin.

Firefox yeniden başlayana kadar Bildirimleri kapat'ın yanındaki kutuyu işaretleyin. Bundan sonra, Mozilla Firefox tarayıcısı devre dışı bırakılana kadar Push bildirimleri gösterilmeyecektir.

Uyarıları yönetmek için "Ayarlar..." düğmesini tıklayın. "Seçenekler - Bildirimleri görüntüleme izni" penceresinde, bildirimlere izin verilen veya engellenen sitelerin bir listesi vardır.

Bir sitenin yanında "Engelle" durumu varsa, bu siteden gelen bildirimler bilgisayarınızda görünmez, çünkü bu siteden bildirim gönderme isteğini daha önce engellemişsinizdir.

Site adresinin yanında “İzin Ver” durumu varsa, bu siteden gelen bildirimler bilgisayarınızda görünecektir.

"Web Sitesini Kaldır" düğmesini kullanarak herhangi bir siteyi listeden kaldırabilir veya "Tüm Web Sitelerini Kaldır" düğmesini tıklayarak tüm siteleri listeden kaldırabilirsiniz.

Bundan sonra, uzak siteden gelen yeni bildirimler bilgisayarınızın masaüstünde görünmeyecektir. Bu siteyi tekrar ziyaret ettiğinizde uyarı alma isteğini reddedin.

Bu listede listelenenler dışındaki sitelerden yeni mesajların alınmasını engellemek için "Size bildirim göndermek için yeni istekleri engelle" onay kutusunu işaretleyin.

Bildirimlerin alındığı sırayı yapılandırmayı tamamlamak için "Değişiklikleri kaydet" düğmesine tıklayın.

Mozilla Firefox'ta push bildirimleri nasıl kaldırılır (2 yol)

Bildirimleri tamamen kapatmak için Mozilla tarayıcısı Firefox, gizli tarayıcı ayarlarına girmeniz gerekiyor.

Adres çubuğuna şu ifadeyi yazın: "about:config" (tırnak işaretleri olmadan). Açılan pencerede "Riski kabul ediyorum!" butonuna tıklayın.

Yeni pencerede, "Ara" alanına "dom.webnotifications.enabled" (tırnak işaretleri olmadan) ifadesini girin ve ardından "Enter" tuşuna basın.

Bu ayar varsayılan olarak "true" olur. Çizgiyi vurgulayın, tıklayın sağ tık fare, bağlam menüsünden "Değiştir"i seçin. Parametrenin değeri "false" olarak değişecektir.

Yandex.Browser'da push bildirimleri nasıl devre dışı bırakılır

Yandex Tarayıcı ayarlarına girin, "Siteler" sekmesine gidin.

"Siteler" bölümünde, "Bildirim gönderme istekleri" seçeneğine gidin. Burada eylem için üç seçenek vardır:

  • Gönderme isteklerini göster (önerilir).
  • Gönderme isteklerini gösterme.
  • Bildirimlere otomatik olarak abone olun.

Push mesajlarını alma prosedürünü düzenleyen istediğiniz seçeneği seçin. Yandex Browser'daki tüm push bildirimlerini tamamen devre dışı bırakmak için "Gönderme isteklerini gösterme" seçeneğini seçin.

Bireysel bildirimlerin alınmasını yapılandırmanız gerekiyorsa, "Diğer sitelerde" bağlantısını tıklayın. Ardından, "Bildirim gönderme" penceresinde, hangi push bildirimlerini engellemek istediğinizi ve hangilerine izin vereceğinizi seçin.

"İzin Verildi" veya "Yasak" sekmesini açın, "Ekle" düğmesini kullanarak uygun bölümde siteye bir bağlantı ekleyin.

Opera'da push bildirimleri nasıl kapatılır

Menüye girin Opera tarayıcısı, öğeye tıklayın bağlam menüsü"Ayarlar". Ardından, "Gelişmiş" bölümünü seçin, "Güvenlik" üzerine tıklayın.

Gizlilik ve Güvenlik bölümünün altında, İçerik Ayarları seçeneğini seçin. "Bildirimler" seçeneğini bulun.

Bildirimler penceresinde, "Göndermeden önce izin iste (önerilir)" seçeneği varsayılan olarak etkindir.

Burada siteyi "Engelle" veya "İzin Ver" bölümüne eklemeniz gerekiyor.

Microsoft Edge'de push bildirimleri nasıl devre dışı bırakılır

Microsoft Edge tarayıcı ayarlarınızda oturum açın. "Seçenekler"i seçin, "Seçenekler" penceresinde "Görünüm" öğesine tıklayın. Ekstra seçenekler". "Gelişmiş Seçenekler" penceresinde "Bildirimler"i seçin ve ardından "Yönet" düğmesine tıklayın.

Bildirimleri Yönet penceresi, bildirimleri gösterme izni isteyen siteleri gösterecektir. Belirli siteler için izinleri değiştirebilirsiniz.

Makale Sonuçları

Kullanıcı, bilgisayarının Masaüstünde aldığı tarayıcıda push (push) bildirimlerini bağımsız olarak devre dışı bırakarak belirli bir web sitesinden bildirimlerin gönderilmesine izin verebilir.

Anında iletme bildirimleri, gönderildikleri sırada çevrimdışı olsanız bile tarayıcı penceresinde görünür. Bu, işletme ürünlerinizi ve hizmetlerinizi tanıtmak için harika bir pazarlama aracıdır. Buna rağmen sesli bir bildirim eşliğinde kullanıcıları rahatsız edebilirler. Bunları nasıl kapatacağınızı öğrenmek için okumaya devam edin.

Google Chrome'da web push bildirimleri nasıl etkinleştirilir veya devre dışı bırakılır

Tarayıcı ayarlarına gidin

Tarayıcı pencerenizin sağ tarafındaki ayarlar simgesine tıklayın ve "Ayarlar"ı seçin.

Gelişmiş ayarları seçin

Sayfayı aşağı kaydırın ve "Gelişmiş Ayarlar"ı seçin.

İçerik Ayarlarını Seçin

"Gizlilik ve Güvenlik" bölümünün altındaki "İçerik Ayarları"na tıklayın.

Uyarıları Seçin

Uyarılar'ı tıklayın.

Buradan uyarılarını almak istediğiniz siteleri ekleyebilir veya uyarılarını önemsemediğiniz siteleri engelleyebilirsiniz.

Ayrıca, bildirim gönderme izni için bir istek almak için bunu yapabilirsiniz.

Müşterilerinize stokta kalmamış ürünler, indirimler ve blogunuzdaki en son gönderiler hakkında bilgi vermek için anında iletme bildirimlerini kullanın.

Bildirimlerinizin engellenmemesi için, yalnızca onları almayı kabul eden kullanıcılara gönderin.

SendPulse'da push bildirimleri

Hizmetimizde bildirim göndermek ücretsizdir - herhangi bir miktarda ve sonsuza kadar! zaten yapıyorsanız eposta pazarlama, push'u ek bir mesaj dağıtım kanalı olarak kullanın. Örneğin bayram arifesinde özel bir gün için indirimli bir e-posta gönderdiniz ama abone açmadı. X gününde bir push bildirimi gönderin ve satışları artırma şansınız daha yüksek olacaktır.

Kişiselleştirilmiş bir deneyim için bildirimleri kişiselleştirin ve bölümlere ayırın, mesajları test edin, belirli olaylardan sonra otomatik göndermeyi ayarlayın. Site başına yalnızca bir satır kod sizi yüksek dönüşümlerden ve satışlardan uzaklaştırır.

2015 yılından itibaren teknoloji hızla popülerlik kazanmaya başladı. API'yi itin Chrome'dan. Giderek artan bir şekilde, çeşitli haber (sadece haber değil) sitelerini ziyaret ederken, ziyaretçilere bir istekle birlikte böyle bir sistem çerçevesi sunulmaktadır:

Siteden bildirim göndermek için izin isteyen Google Chrome sistem penceresi.

Bu içerik dağıtım kanalını (veya kullanıcı edinme, ne demek isterseniz) içtenlikle en umut verici kanallardan biri olarak görüyorum. Belki birkaç yıl sonra bile, bu anlık bildirimler, bugün RSS ve sosyal ağlardaki kamuoyunun olduğu, kendine saygılı her haber sitesinin aynı zorunlu özelliği olacaktır.

Bununla birlikte, bugün bu teknoloji hala oldukça genç ve sadece yerel İnternet'te değil, aynı zamanda yabancı İnternet'te de kullanımı için çok az kılavuz var. Uzakta bir örnek aramanıza gerek yok - Google'ın kendisi bile Push API'sini duyurduğunda, gözyaşlarına boğulacak kadar yetersiz bir basın açıklaması yayınladı. Ve ancak şimdi, geliştiriciler için Google SSS'yi birkaç saat inceledikten sonra, okuyucularınıza anında iletme bildirimleri göndermek için en azından çalışan komut dosyaları toplamak için bilgi toplayabilirsiniz.

Siteniz için bu tür push bildirimleri nasıl yapılır? Burada iki yol vardır: üçüncü taraf hizmetleri kullanın (zaten var ve bazıları çok iyi) veya kendi çözümünüzü yaratın. Sitede üçüncü taraf hizmetlerinin minimum kullanımının destekçisi olduğum için, Şehre giden yolumuz önceden belirlenmiş bir sonuçtu.

Ancak adalet adına, dış çözümler hakkında birkaç söz söylemeye değer. Bu piyasayı çok incelemediğimi itiraf ediyorum (nedeni hemen yukarıda belirtilmiştir), ancak en çekici özelliği hizmetlerinin tamamen ücretsiz olması olan OneSignal hizmetinden bahsetmeden geçemeyeceğim  -   hakkında veri satarak kazanıyorlar. müşteri sitesini ziyaret edenler. Ayrıca bir Jeapie servisi var, kendi taraflarında çok yetkin pazarlamaları var ve kural olarak, iyi geri bildirim. Ancak, bir keresinde Meduza'nın hizmetlerini reddettiğini belirtmekte fayda var - Platform, Meduza'nın büyük izleyicisine gönderilmesi gereken itme miktarına hazır değildi.

uygulama. Google'dan kimlik bilgilerini alma.

Kaynak verilerde, yazılı bir site Raylar 3.2.8 ve görev, üzerinde Chrome için bir bildirim iticisi yapmaktır.

İlk adım, siteyi HTTPS'ye (güvenli köprü metni protokolü) aktarmak, yani siteniz için bir SSL sertifikası yapmaktır. Onsuz, push bildirimleri çalışmaz (normal http ile kontrol edilmedi, ancak her yerde böyle yazılmış). SSL'nin ne olduğu, ne ile yendiği, sunucuya nasıl sertifika konulacağı ve nasıl bağlanacağı hakkında yazmayacağım - İnternet benzer makalelerle dolu. Sadece bu amaçlar için StartSSL'yi önereceğim. Bu, bildiğim tüm tarayıcıların arkadaş olduğu, kasıtlı olarak basit bir kayıt ve doğrulama prosedürüne sahip iyi bir Sertifika Yetkilisidir (yalnızca minimum ingilizce dili) kesinlikle almak ücretsiz SSL sertifikası giriş seviyesi, beş (sic!) alt alan adı daha içerebilir.

Böylece sertifikayı aldık ve Nginx veya Apache'mizi buna göre yapılandırdık. Şimdi adres çubuğu sitemizin adresinin yanındaki tarayıcı yeşil renkte yanıyor, en şirin küçük kilit, yazıt https://, ve eğer parayı önemsiyorsanız, organizasyonun adı.

Sonra gidiyoruz Google Bulut Platformu, kayıt olduğumuz yer yeni proje, örneğin MySite-Push olarak adlandırın.

Google Cloud Platform'da yeni bir proje oluşturun

Birkaç saniye sonra, proje oluşturulduğunda, bölüm üzerinden Google API'ye bağlanma, bağlantı API'yi etkinleştirin ve yapılandırın tüm listenin olduğu bölüme git API yöntemleri hepsi için Google hizmetleri. Orada yöntemi dahil etmeliyiz Google Bulut Mesajlaşma Mobil API bölümünden.

Yöntem Google Bulut Mesajlaşma Mobil API bölümünden

Büyük olasılıkla, yönteme bağlanırken Google sizden ek veriler kaydetmenizi isteyecektir. Örneğin, API'nin nereden çağrılacağını netleştirmenizi isteyecek, ardından ihtiyacımız olan işleyicinin türünü belirteceğiz (örneğin, bir Web sunucusu).

Ardından sunucu IP'sini (istenirse) belirtir ve istekleri yetkilendirmek için kullanılacak özel bir anahtar oluştururuz. Bu anahtar, elbette, gelecekte ihtiyacımız olacak.

Google API'ye erişmek için oluşturulan özel anahtar

Düğmeye bastıktan sonra Hazır Kendimizi, etki alanını belirtmemiz ve Search Console araçları aracılığıyla haklarını onaylamamız gereken bir sayfada bulacağız. İnternette bununla ilgili epeyce makale de var ve prosedürün kendisi sezgisel. O yüzden burada durmayalım.

Aslında, Google Cloud Platform'dan başka bir şeye ihtiyacımız yok. Anahtar ve kimlik.

uygulama. İlk site kurulumu.

Şimdi kök klasör sitemize bir dosya eklememiz gerekiyor manifest.json aşağıdakileri belirtecek olan :

("name": "mysite.ru Push testi", // Site adı "görüntüleme" : "bağımsız", // "gcm_sender_id" bildirimlerinin nerede gösterileceğini belirtin: "258466066904" // Google Cloud Platform'da aynı uygulama kimliği )

Bu en çok gerekli minimum manifesto için bilgi. Google'a gidebilir ve orada hangi ek parametreleri belirtebilirsiniz.

tamam bölüme ekle bildirime bağlantı içeren meta etiket:

Şimdi aynı yerde, kök klasörde bir dosya oluşturun push.js, aşağıdaki kodu girdiğimiz yer:

"katı kullan"; function SendPushMe() ( if ("serviceWorker" gezginde) ( console.log("Service Worker desteklenir"); navigator.serviceWorker.register("/sw.js").then(function() ( navigator.serviceWorker döndür .ready; )).then(function(reg) ( console.log("Service Worker hazır:^)", reg); reg.pushManager.subscribe((userVisibleOnly: true))).then(function(sub) ( console.log("endpoint:", sub.endpoint); $.get("https://mysite.ru/createpushadresat?adresat=" + sub.endpoint, function(data) ()); )); )) .catch(işlev(hata) ( console.log("Servis Çalışanı hatası:^(", hata); )); ) )

Bu kod ne yapar? SendPushMe() yöntemini çağırırken, tarayıcının push bildirimlerine aboneliği destekleyip desteklemediğini kontrol eder. Ardından, varsa (geliştirici günlük konsolunda, " Servis Çalışanı desteklenir”, aksi takdirde orada bir hata mesajı görünecektir), kaydolmaya çalışacaktır Servis Çalışanı hangi yakında görünecek /sw.jsŞu anda, kullanıcı tarayıcıdan eylemi onaylamak için bir istek görecektir. Daha sonra kullanıcı kabul ederse işçinin kaydı yapılacak ve adresinde https://mysite.ru/createpushadresat Bir değişkende GET isteği adres benzersiz bir tarayıcı tanımlayıcısı iletilecektir. Ayrıca geliştiricinin günlük konsolunda da görüntülenecektir.

Şimdi bir Service Worker oluşturalım. bu dosya olacak sw.js kök klasörde:

"katı kullan"; self.addEventListener("kurulum", function(event) ( event.waitUntil(self.skipWaiting()); )); self.addEventListener("push", function (event) ( event.waitUntil(fetch("/latest.json")).then(function (yanıt) ( if (response.status !== 200) ( console.log(" En son.json istek hatası: " + response.status); throw new Error(); ) return response.json().then(function (data) ( if (data.error || !data.notification) ( console.error ("Latest.json Format Error.", data.error); throw new Error(); ) var title = data.notification.title; var body = data.notification.body; var icon = "https://mysite. ru/my_beauty_push_icon.png"; self.registration.showNotification(başlık, ( gövde: gövde, simge: simge, veri: ( url: data.notification.url ) )); )).catch(işlev (err) ( konsol .error("Veri Alma Hatası", err); )); ))); )); self.addEventListener("notificationclick", function (event) ( event.notification.close(); var url = event.notification.data.url; event.waitUntil(clients.openWindow(url)); ));

Bu kod, çağrıldıktan sonra, verileri dosyadan alınan bir bildirim oluşturur. en son.json da yerleşmiş https://mysite.ru/latest.json. Bu dosyaya yönelik istek başarısız olursa veya site geçersiz json ile yanıt verirse, geliştiricinin günlük konsolunda ilgili bir giriş görünür. Her şey yolundaysa, bir itme oluşturulacaktır. İtme değişkenlerden oluşur gövde- bu kısa bir metin mesajıdır, Başlık- itme başlığı, url- kullanıcının bildirime tıkladığında izleyeceği bağlantı ve simge- web sitesinin logosunu gösterecek güzel ve hoş (tercihen en az 150 piksellik bir kenarı olan kare) bir simge. Ve özellikle bu komut dosyasında simge- statik parametre ve diğerleri dinamik olarak güncellenir. en son.json.

Komut dosyasını biraz aktarabilirsiniz, böylece simge de dinamik bir parametre olur, ancak bana öyle geliyor ki bu kesinlikle gereksiz olacak, küçük bir şekilde göremediğiniz bir görüntü sağlamaktan ziyade bildirimleri markalamak daha iyidir. itmek.

Ve son olarak, yaratıyoruz en son.json bildirimler için hangi bilgilerin alınacağı. Kök klasörde yatacağını tahmin etmenin zor olmadığını düşünüyorum. Ve işte içeriği:

("bildirim":("url":"https://mysite.ru/posts/1","title":"Harika haberler","body":"Chrome için harika bir abonelik yaptık"), "_id" :319)

Sanırım bu json'da neyin ne olduğunu açıklamanın bir anlamı yok, zaten her şey açık.

Teorik olarak, sitemiz veya daha doğrusu ön ucu artık neredeyse tamamen hazır. Yapılması gereken tek şey, Google'a yeni güncellemelerimiz olduğunu nasıl söyleyeceğinizi öğrenmek, böylece onlar da abonelerimizin tarayıcılarını bu konuda bilgilendirecek. Ve elbette, dinamik olarak güncelle en son.json. Ancak, bu bir sonraki bölümde.

not Bu arada, hemen şimdi SendPushMe()'yi arayabilir ve ne olduğunu görebilirsiniz. Bunu yapmak için, örneğin, tıklandığında bu yöntemin çağrılacağı ve çağrılacağı bir bağlantı oluşturabilirsiniz:

SendPushMe'yi arayın

Ve her şey doğru yapılırsa, böyle bir bağlantıya tıkladıktan sonra, istek içeren bir sistem penceresi görünecektir:

Ancak henüz izin vermek için acele etmeyin. Şimdilik çarmıha tıklayın ve pencereyi kapatın.

Zaten tıkladıysanız, site ayarlarını açın (kimse bilmiyorsa adres çubuğundaki yeşil kilide tıklayarak) ve “Uyarılar” öğesinde Genel ayarı varsayılana (“Sor”) döndürün.

Şimdi geliştirici konsolunu açın F12 -> Konsol. Ardından, tekrar “SendPushMe'yi Ara” bağlantısını tıklayın.

Konsol, " içeren art arda iki satır göstermelidir. Servis Çalışanı desteklenir" ve " Servis Görevlisi hazır" sırasıyla. Ve tarayıcının kendisi tekrar izin istemelidir. Ve şimdi onayınızı verebilirsiniz.

Sonuç olarak, geliştirici konsolunuzda bu tür üç giriş görünmelidir:

Abonelik günlüğünü itin Chrome tarayıcı

Hatırlarsanız, senaryo push.js bir GET isteği gönderir. Bu istek ile sunucuya iletilen Endpoint'tir. Biraz sonra, bu tanımlayıcıları kullanarak push gönderebilmemiz için siteye onları hatırlamasını öğreteceğiz.

Şimdi elimizde ne var? Siteden gelen bildirimlere tam teşekküllü bir abonemiz var ve artık abonelerin tanımlayıcılarını izole edebiliyoruz. Şimdi Tanrı bana kendime bir bildirim göndermeyi denememi söyledi.

Bunu yapmak için, Google'a yeni bildirimden bahsetmeniz gerekir ve o da sırayla abonelerimizi (veya şu anda sahip olduğumuz gibi tek bir kişiyi) bu konuda bilgilendirecektir.

Google, özel bir POST isteğiyle bilgilendirilir: https://gcm-http.googleapis.com/gcm/send burada bu formda:

Content-Type:application/json Authorization:key=A...A //Son bölümde aldığımız uygulamamızın özel anahtarı. ( "to" : "bk3RNwTe3H0:CI2k_...", // Abonenin benzersiz tanımlayıcısı. "data" : ("title": "Portugal - Danimarka", // Bildirim verileri "text": "5 to 1") , )

Tahmin edebileceğiniz gibi, bu istek belirli bir aboneyi bilgilendirir ve bildirim verileri doğrudan istekte iletilir. Ancak bildirim içeriğimiz en son.json'dan alınmıştır. Evet ve her aboneye kişisel istek göndermek çok cesur. Bununla birlikte, bireysel ve kişisel bildirimler göndermeniz gerekiyorsa, bu seçenek tam size göre. Ancak, talepleri aşağıdaki şemayı kullandığımız gruplar halinde göndereceğiz:

Content-Type:application/json Authorization:key=A...A //Son bölümde aldığımız uygulamamızın özel anahtarı. ( "registration_ids" : ( [...] // Abone kimlikleri dizisi. ), )

Bu durumda, istek bildirimin kendisi için veri içermediğinden, tarayıcı bilgi alacağı Servis Çalışanı ile iletişime geçecektir.

Terminal (SSH konsolu) üzerinden bir istek oluşturup gönderelim:

kıvrılmak--header "Yetkilendirme: anahtar=AI...3A" \ --header İçerik Türü:"application/json" \ https://gcm-http.googleapis.com/gcm/send \ -d "(\" register_ids\":[\"cym...W3\"])"

Gönderilen bir POST isteği ve sonuçta ortaya çıkan Push ile SSH konsolu

Bu ekran görüntüsü hem isteğin kendisini hem de sonucunu gösterir - bir saniye sonra gelen bir bildirim.

Evet, yaptık - en önemli ve görünen o ki, geride kalan kısım. Bu yönde daha fazla çalışma, sitenizin ne üzerine yazıldığına bağlı olacaktır. Ve siteniz Rails üzerine yazılmışsa, o zaman hala yoldayız demektir. Değilse, hoşçakal demek için acele etmeyin: bir sonraki sonuç bölümünde, çözümü herhangi bir uzmanlığın web geliştiricileri için yararlı olacak Web bildirimleri konusundaki sorulara geri döneceğim.

Yani, bir Ruby On Rails Sitesi için Chrome Push Bildirimleri

Öncelikle bu kod örneğinin bir Rails 3.2.8 sitesi için geçerli olduğunu söyleyeyim!

Esasen yapmamız gerekenler:

  1. Sitemizin abone kimliklerini hatırlaması için işlevsellik;
  2. Push bildirimleri oluşturmak için model;
  3. Dinamik olarak güncellenen en son.json;
  4. Yeni bir Push oluştururken Google sunucusuna bir POST isteği gönderecek olan denetleyiciye birkaç satır kod ekleyin.

Unuttuysanız ilk bölümde hemen eklediğimizi hatırlatmama izin verin. push.js Sitemize yeni imzalanan her kişinin tarayıcı kimliğini ileten bir GET isteği oluşturmak için bir satır.

Şimdi sitemizin ne tür bir istek olduğunu anladığından ve verileri kaydettiğinden emin olalım. Öncelikle bir model ve controller oluşturalım. pushsubscriber:

Rails g modeli pushsubscriber browserkey:string tırmık db:migrate Rails g controller pushsubscriber oluşturma silme

"/createpushadresat"ı şu şekilde eşleştirin: "pushsubscribers#create", aracılığıyla: : almak

Artık sitemiz gelen GET isteklerini kontrolöre iletir. aboneleri itin , yöntemle işleneceği yer oluşturmak . Ayarlayalım:

tanım oluşturmak@newsubscriber = Pushsubscriber.new(:browserkey => URI(params[:adresat].to_s).path.split("/").last) eğer@newsubscriber.kaydet? render:text => "tamam" başka render:text => "başarısız" son son

Hemen söylemeliyim ki bu kod sadece geliştirmeniz gereken yönü göstermek içindir. Neredeyse hiçbir şeyi kontrol etmez ve ne doğrulayıcı ne de normal ifade kullanmaz - bu şekilde kullanmayın. Yalnızca giriş parametresinin bir bağlantı biçiminde veri içerip içermediğini kontrol eder ve ardından eğik çizgiden sonraki son bölüm bu bağlantıdan çıkarılır ve veritabanında saklanır. Bu formda push.js iletir bitiş noktası. Ve tarayıcı tanımlayıcısı, uç noktanın son bölümünde (eğik çizgiden sonra) bulunur.

Böylece insanlar güncellemelerimize abone olmaya başladı ve şimdi Veritabanımız tanımlayıcılarla dolduruldu. Onlara bildirim göndermeye başlama zamanı:

Rails g iskele bildirimi başlığı:dize bodytext:dize url:dize başarılı sayı:tamsayı komisyonu db:migrate

Bu İskele komutu bizim için minimal düzeyde çalışan bir model oluşturacaktır. bildirim alanlar ile Başlık,gövde metni,url ve başarı sayısı. İlk üçü - sırasıyla, gelecekteki uyarının başlığı, metni ve bağlantısı ve başarı sayısı- Google'ın nazikçe bize bildireceği, başarıyla iletilen push sayısı. Bu model için görünümleri olan bir denetleyici de oluşturulacaktır. Tabii ki, yine de oluşturulan görünümleri sitenin genel tasarımına girmeniz ve denetleyiciyi "kapatmanız" gerekecek. önce_filtre'ami, böylece yalnızca uygun erişime sahip kişiler "zorlayabilir". Ancak buna bireysel olarak karar vermek size kalmış. Ve şimdi biz biraz (aslında pek değil) içindeki oluşturma yöntemini düzeltin bildirimler_controller.rb:

gerekmek"açık uri" gerekmek"çoklu_json" gerekmek"uri" tanım oluşturmak@notification = Notification.new(params[:notification]) eğer@notification.save @adresats = Pushsubscriber.all.collect(&:browserkey) @keys = "("registration_ids":" [e-posta korumalı] _json+")".as_json uri = URI.parse("https://android.googleapis.com/gcm/send") http = Net::HTTP.new(uri.host,uri.port) http.use_ssl = true req = Net::HTTP::Post.new(uri.path) req["Authorization"] = "key=A...A" # Özel anahtarı buraya girin req["Content-Type"] = "application/json " res = http.request(req, @keys) parsed_json = ActiveSupport::JSON.decode(res.body) @notification.update_attribute(:success, parsed_json["success"].to_i) son Yeniden yönlendirme_bildirimler_yolu son

Bu kod, yeni bir bildirim (@bildirim) oluşturulur ve kaydedilirse, Google'a (tam olarak yukarıda yaptığımız gibi) bir POST isteği oluşturur ve gönderir, burada TÜM abone kimliklerimiz Google spesifikasyonuna göre json formatında iletilir. O zaman Google bize json'u ile cevap vermelidir. Başarı bölümünün ayrıştırıldığı, başarıyla iletilen itme sayısının -  sayısının depolandığı. Başarısızlık bölümü de buradan geçirilir, buna göre, bir nedenden ötürü teslim edilmeyen itme sayısının depolandığı. Genel olarak, Google'ın hangi verileri ilettiğini kendiniz görebilirsiniz, belki başka bir şeyi kaydetmeye karar verirsiniz.

Ve tıpkı geçen seferki gibi verilen kod Google'ın yanıt vermeyebileceğini veya bir hata mesajıyla yanıt verebileceğini ve ayrıştırma için geçerli json olmadığını dikkate almaz. Gelişiminizde bu tür durumları göz önünde bulundurun.

Şimdi, Notification.new formunu (Scaffold tarafından oluşturulmuş) kullanarak sitemizde bir itme oluşturmaya çalışıyoruz ve… Voilà! Sistem çalışıyor - bir bildirim aldık!

Bu bildirimin gerçek içeriği hala statikten alınır en son.json. Geriye kalan son şey, bu dosyayı dinamik olarak güncellemeye zorlamak. Nasıl yapılır? Çok basit, çünkü zaten bir Bildirim modelimiz var ve en son.json tam olarak son Bildirimimizi içermelidir (yani, Notification.all.last). Bunu yapmak için, static last.json'ımızı sitenin kök klasöründen kaldırıyoruz ve onu ekliyoruz. rotalar.rb aşağıdaki rota:

"/latest.json" ile eşleştirin: "notification#latestpush" ile: :get

bu şimdi en son.json yöntemle üretilecek en son itme kontrolörde bildirim. Bu yöntemi oluşturalım:

Def lastpush @push = Pushnotification.all.last json render: "("bildirim":("url":"" [e-posta korumalı] _s+"","başlık":"" [e-posta korumalı] _s+"","vücut":"" [e-posta korumalı] _s+""),"_id":" [e-posta korumalı] _s+")".as_json sonu

Şimdi Notification.new formu üzerinden başka bir bildirim oluşturalım. Ve son olarak, tam olarak forma yeni sürülen içerikle birlikte monitörün köşesinde bir itme görüyoruz.

Görünüşe göre hepsi bu mu? Her şey, ama tam olarak değil. Öncelikle abone olduk ama abonelikten çıkmadık - dürüst olun ve site ziyaretçilerine bu fırsatı verin. İkincisi, bir abonelik yaptık, ancak yine de bilgilendirici değil ve sadece herkese değil, herkese gösteriliyor. Chrome kullanıcıları, aboneliğin yapıldığı. Üçüncüsü, kendi kullanım kuralları olan web sitemizde çok ilginç bir oyuncak yaptık. Hikayemizin bir sonraki, üçüncü ve son bölümünde bahsedeceğimiz tek şey bu. Chrome Push API'si.