Maison >développement back-end >Tutoriel Python >Gagner la bataille contre le désengagement des utilisateurs avec les notifications push Django
Dans le monde trépidant des applications mobiles, maintenir l'engagement des utilisateurs est un défi. Aujourd'hui, nous explorons comment Django peut aider les développeurs à lutter contre le désengagement des utilisateurs en configurant des notifications push pour tenir les utilisateurs informés et connectés.
Configuration des notifications push dans Django
Les notifications push sont comme un rappel amical, ramenant les utilisateurs à votre application avec des mises à jour ou des alertes. Django peut gérer cela efficacement avec quelques étapes essentielles.
Étape 1 : Créer un modèle de notification
Pour commencer, Django a besoin d'un modèle de notification. Ce modèle stockera toutes les notifications que votre application envoie aux utilisateurs.
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')
Étape 2 : Création d'une fonction de notification d'envoi
Ensuite, nous ajouterons une fonction pour envoyer ces notifications. C'est ici que nous écrivons la logique qui envoie le message en cas de besoin, garantissant ainsi aux utilisateurs d'obtenir des mises à jour en temps réel.
#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
Étape 3 : Configuration des signaux
Django peut utiliser des signaux pour déclencher des notifications basées sur les actions de l'utilisateur, comme un nouveau message ou une tâche terminée.
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)
Étape 4 : Inscrivez-vous dans l'administrateur
Enfin, en enregistrant le modèle de notification dans le panneau d'administration de Django, nous pouvons gérer les notifications facilement, en gardant tout organisé et prêt.
from django.contrib import admin from .models import * admin.site.register(Notification)
Intégration de Firebase pour les notifications frontales
Pour garantir que les notifications parviennent aux appareils des utilisateurs, Django s'associe à Firebase.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!