Не удается подписаться на пуш уведомления
Первый раз пытаюсь с пуш поладить, не выходить. Вроде все выполнил верно
'use strict';
function urlBase64ToUint8Array(base64String) {
var padding = '='.repeat((4 - base64String.length % 4) % 4);
var base64 = (base64String + padding)
.replace(/\-/g, '+')
.replace(/_/g, '/');
var rawData = window.atob(base64);
var outputArray = new Uint8Array(rawData.length);
for (var i = 0; i < rawData.length; ++i) {
outputArray[i] = rawData.charCodeAt(i);
}
return outputArray;
}
function SendPushMe() {
if ('serviceWorker' in navigator) {
console.log('Service Worker is supported');
navigator.serviceWorker.register('/sw.js').then(function() {
return navigator.serviceWorker.ready;
}).then(function(reg) {
console.log('Service Worker is ready :^)', reg);
reg.pushManager.subscribe({userVisibleOnly: true, applicationServerKey: urlBase64ToUint8Array('BAVR1KZoitVgsfJ8ICyp4XE0H4riw8SRIjr26F4TqM7HUrl5f3clkOMLNu_xZkQB__eJ7f_GRmpdC--BZjqmzcA')}).then(function(sub) {
console.log('endpoint:', sub.endpoint);
});
}).catch(function(error) {
console.log('Service Worker error :^(', error);
});
}
}
Изначально ошибка была в том что необходимо было указать applicationServerKey. Хорошо, добавил... Не совсем понимаю что это. Генератор уникальной строчки? Когда даю согласие
sub.endpoint отдает:
endpoint: https://fcm.googleapis.com/fcm/send/cmC5z6LDBVw:APA91bE4zxtfrpnuE6kGC-x8kYDZWslbSOPj6I70TxFlVYj6Qlqb3C35dXD8TswoUUkGo0TFoFUB3HbEXuPtpj0NZoWxlpI085HqkRXBL8JYE6wr4scKP97s2Hwf319GpaG5PaXZgO
Вроде все работает.
Как я понял, в качестве id, в базу данных необходимо заносить данную строчку
APA91bE4zxtfrpnuE6kGC-x8kYDZWslbSOPj6I70TxFlVYj6Qlqb3C35dXD8TswoUUkGo0TFoFUB3HbEXuPtpj0NZoWxlpI085HqkRXBL8JYE6wr4scKP97s2Hwf319GpaG5PaXZgO
В дальнейшем отдавать гуглу идентификатор для отправки уведомления...
Возможно ли изменить "BAVR1KZoitVgsfJ8ICyp4XE0H4riw8SRIjr26F4TqM7HUrl5f3clkOMLNu_xZkQB__eJ7f_GRmpdC--BZjqmzcA" на что та более короткое и уникальное. То есть это весьма огромная строчка как и отдача id от гугла...