Я настроил Push-уведомления с использованием Firebase и не могу отправлять пользовательские данные.
Я также пробовал библиотеку PyFCM , но данные по-прежнему нулевые. Из того, что я обнаружил, требует шифрования , но я не уверен, как это реализовать.
Как я могу зашифровать push-данные в python или отправить пользовательские данные через push-уведомления?
Я надеюсь запустить event_handler.py как службу, опросить базу данных MySQL на предмет новых уведомлений и отправить push-уведомление этому пользователю.
Я уже сохраняю регистрационные идентификаторы пользователя, мне просто нужно иметь возможность отправлять данные с помощью push-уведомлений.
сервис-worker.js
self.addEventListener('push', function(event) {
if (event.data) {
console.log(event.data.text());
}
console.log('Received a push message', event);
if (event.title) {
var title = event.title;
} else {
var title = 'New message.';
}
var body = 'You have received a push message.';
var icon = 'img/logo.png';
var tag = 'simple-push-demo-notification-tag';
event.waitUntil(
self.registration.showNotification(title, {
body: body,
icon: icon,
tag: tag,
})
);
});
Я могу отправить Push-уведомление, используя следующее:
notification_handler.py
import requests
headers = {
'Content-type': 'application/json',
'Authorization': 'key=AAAAl...',
}
data="""{
"to" : "fk1jL...",
"data" : {
"title" : "hi there",
"body" : "new push message",
},
}"""
response = requests.post('https://fcm.googleapis.com/fcm/send', headers=headers, data = data)
Однако, когда push-уведомление получено, данные не выводятся в вывод консоли:
Received a push message PushEvent {isTrusted: true, data: null, type: "push", target: ServiceWorkerGlobalScope, currentTarget: ServiceWorkerGlobalScope, …} bubbles: false cancelBubble: false cancelable: false composed: false currentTarget: ServiceWorkerGlobalScope {clients: Clients, registration: ServiceWorkerRegistration, onactivate: null, onfetch: null, oninstall: null, …} data: null defaultPrevented: false eventPhase: 0 isTrusted: true path: [] returnValue: true srcElement: ServiceWorkerGlobalScope {clients: Clients, registration: ServiceWorkerRegistration, onactivate: null, onfetch: null, oninstall: null, …} target: ServiceWorkerGlobalScope {clients: Clients, registration: ServiceWorkerRegistration, onactivate: null, onfetch: null, oninstall: null, …} timeStamp: 0 type: "push"
__proto__: PushEvent