빠르게 변화하는 모바일 앱 세계에서 사용자의 참여를 유지하는 것은 어려운 일입니다. 오늘은 Django가 푸시 알림을 설정하여 사용자에게 계속 정보를 제공하고 연결을 유지함으로써 개발자가 사용자 이탈을 방지하는 데 어떻게 도움이 되는지 살펴보겠습니다.
Django에서 푸시 알림 설정
푸시 알림은 업데이트나 알림을 통해 사용자를 앱으로 다시 불러오는 친숙한 알림과 같습니다. Django는 몇 가지 필수 단계를 통해 이를 효과적으로 처리할 수 있습니다.
1단계: 알림 모델 구축
시작하려면 Django에 알림 모델이 필요합니다. 이 모델은 앱이 사용자에게 보내는 모든 알림을 저장합니다.
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')
2단계: 알림 보내기 기능 만들기
다음으로 이러한 알림을 보내는 기능을 추가하겠습니다. 여기에서 필요할 때 메시지를 보내는 로직을 작성하여 사용자가 실시간 업데이트를 받을 수 있도록 합니다.
#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
3단계: 신호 설정
Django는 신호를 사용하여 새 메시지나 완료된 작업과 같은 사용자 작업을 기반으로 알림을 트리거할 수 있습니다.
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)
4단계: 관리자 등록
마지막으로 Django 관리자 패널에 알림 모델을 등록하면 알림을 쉽게 관리하고 모든 것을 정리하고 준비할 수 있습니다.
from django.contrib import admin from .models import * admin.site.register(Notification)
프런트엔드 알림을 위해 Firebase 통합
알림이 사용자의 기기에 전달되도록 하기 위해 Django는 Firebase와 협력합니다.
위 내용은 Django 푸시 알림으로 사용자 이탈 방지 전투에서 승리하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!