>백엔드 개발 >파이썬 튜토리얼 >Django 푸시 알림으로 사용자 이탈 방지 전투에서 승리하기

Django 푸시 알림으로 사용자 이탈 방지 전투에서 승리하기

Patricia Arquette
Patricia Arquette원래의
2024-12-06 22:49:12651검색

Winning the Battle Against User Disengagement with Django Push Notifications

빠르게 변화하는 모바일 앱 세계에서 사용자의 참여를 유지하는 것은 어려운 일입니다. 오늘은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.