Heim > Backend-Entwicklung > Python-Tutorial > Gewinnen Sie den Kampf gegen die Abwanderung von Benutzern mit Django-Push-Benachrichtigungen

Gewinnen Sie den Kampf gegen die Abwanderung von Benutzern mit Django-Push-Benachrichtigungen

Patricia Arquette
Freigeben: 2024-12-06 22:49:12
Original
667 Leute haben es durchsucht

Winning the Battle Against User Disengagement with Django Push Notifications

In der schnelllebigen Welt mobiler Apps ist es eine Herausforderung, die Nutzer bei der Stange zu halten. Heute untersuchen wir, wie Django Entwicklern helfen kann, die Abneigung der Benutzer zu bekämpfen, indem es Push-Benachrichtigungen einrichtet, um Benutzer auf dem Laufenden zu halten und in Verbindung zu bleiben.

Push-Benachrichtigungen in Django einrichten

Push-Benachrichtigungen sind wie eine freundliche Erinnerung, die Benutzer mit Aktualisierungen oder Benachrichtigungen zu Ihrer App zurückbringt. Django kann dies mit ein paar wesentlichen Schritten effektiv bewältigen.

Schritt 1: Erstellen Sie ein Benachrichtigungsmodell

Um loszulegen, benötigt Django ein Benachrichtigungsmodell. Dieses Modell speichert alle Benachrichtigungen, die Ihre App an Benutzer sendet.

from django.db import models
from django.utils.translation import gettext_lazy as _

class Notification(models.Model):
    title = models.CharField(max_length=255, verbose_name=_('Notification title'))
    body = models.TextField(verbose_name=_('Notification body'))
    image = models.ImageField(upload_to='notifications/', null=True, blank=True)
    created_date = models.DateTimeField(auto_now_add=True)  # Add this field

    def __str__(self):
        return self.title

    class Meta:
        ordering = ("-created_date",)  # Now created_date exists
        verbose_name = _('Notification')

Nach dem Login kopieren

Schritt 2: Erstellen einer Funktion zum Senden von Benachrichtigungen

Als nächstes fügen wir eine Funktion zum Senden dieser Benachrichtigungen hinzu. Hier schreiben wir die Logik, die die Nachricht bei Bedarf sendet und sicherstellt, dass Benutzer Echtzeit-Updates erhalten.

#notifcations.py

import os
from google.oauth2 import service_account
from google.auth.transport.requests import Request
import requests

def refresh_access_token(service_account_file):
    credentials = service_account.Credentials.from_service_account_file(
        service_account_file,
        scopes=["https://www.googleapis.com/auth/cloud-platform"],
    )
    credentials.refresh(Request())
    access_token = credentials.token
    return access_token
Nach dem Login kopieren

Schritt 3: Signale einrichten

Django kann Signale verwenden, um Benachrichtigungen basierend auf Benutzeraktionen auszulösen, wie z. B. einer neuen Nachricht oder einer abgeschlossenen Aufgabe.

from django.db.models.signals import post_save
from django.dispatch import receiver
import requests

# Import the Notification model and the refresh_access_token function
from my_app.models import Notification  # Change 'my_app' to your actual app name
from my_app.notifications import refresh_access_token  # Update the path if necessary
@receiver(post_save, sender=Notification)
def send_notification_on_creation(instance, created, **kwargs):
    if created:
        service_account_file = '/home/rv/Documents/rv/push_notification/core/my_app/test-project.json'
        tkn = refresh_access_token(service_account_file)
        print('tkn',tkn)
        endpoint = "https://fcm.googleapis.com/v1/projects/test-project-595ae/messages:send"
        access_token = tkn
        headers = {
            "Authorization": f"Bearer {access_token}",
            "Content-Type": "application/json",
        }

        data = {
            "message": {
                "token":"dnTB_cv9TZ25jsOkkQSS0x:APA91bEghK69zhqpTi2B5hPFtX0mpLSzdSQswrGEKl60PrUQDgy9RTIc_f9pjfxoyuUU-w8xjwk0WO1KtvbwF3bYFlQ21HWv-JueS-Fu7azhUsjgULDN41TTTiqONsqLsbIqS9_xKsUv",
                "notification": {
                    "title": instance.title,
                    "body": instance.body,
                }
            }
        }

        response = requests.post(endpoint, json=data, headers=headers)

        if response.status_code == 200:
            print("Push notification successfully sent!")
        else:
            print(f"Failed to send push notification. Status code: {response.status_code}")
            print(response.text)
Nach dem Login kopieren

Schritt 4: Registrieren Sie sich im Admin

Durch die Registrierung des Benachrichtigungsmodells im Django-Admin-Panel können wir Benachrichtigungen einfach verwalten und alles organisiert und bereit halten.

from django.contrib import admin

from .models import *

admin.site.register(Notification)
Nach dem Login kopieren

Integration von Firebase für Frontend-Benachrichtigungen
Um sicherzustellen, dass Benachrichtigungen die Geräte der Benutzer erreichen, arbeitet Django mit Firebase zusammen.

Das obige ist der detaillierte Inhalt vonGewinnen Sie den Kampf gegen die Abwanderung von Benutzern mit Django-Push-Benachrichtigungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage