- Нужно создать приложения для любимых фронтендеров и мобильных разработчиков
-
Получить серверный ключ для
Django
в настройках проекта (Project Settings) во вкладке Cloud Messaging -
Не забудьте отправить конфигурационные файлы для фронтендеров и мобильных разработчиков, чтобы они смогли настроить уведомления
$ pip install django-push-notifications
INSTALLED_APPS = (
...
"push_notifications"
)
PUSH_NOTIFICATIONS_SETTINGS = {
"FCM_API_KEY": "[your api key]",
}
$ python manage.py migrate
serializers.py
from push_notifications.api.rest_framework import GCMDeviceSerializer, GCMDevice
class FCMDeviceSerializer(GCMDeviceSerializer):
def create(self, validated_data):
validated_data['cloud_message_type'] = "FCM"
instance = GCMDevice.objects.create(
**validated_data
)
return instance
views.py
from push_notifications.api.rest_framework import GCMDeviceAuthorizedViewSet
from . import serializers
class FCMDeviceAuthorizedViewSet(GCMDeviceAuthorizedViewSet):
serializer_class = serializers.FCMDeviceSerializer
urls.py
router = SimpleRouter()
router.register(r'device/fcm', views.FCMDeviceAuthorizedViewSet)
notifications.py
(нужно создать файлик)
from push_notifications.models import GCMDevice
from . import models
def notify_user(user, message):
devices = GCMDevice.objects.filter(user=user)
devices.send_message(message)
def notify_many_users(users, message):
for user in users:
notify_user(user, message)
def notify_all(message):
devices = GCMDevice.objects.all()
devices.send_message(message)
Дальше во всех местах, где нужно уведомлять пользователей системы используй те методы, которые тебе нужны.