Django и FCM для отправки уведомлений о sh - PullRequest
0 голосов
/ 30 мая 2020

Как правильно использовать fcm- django с использованием пользовательской модели информации об устройстве или с возможностью расширения FCMDevice дополнительными атрибутами.

Например, мне нужно сохранить в информации об устройстве некоторые дополнительные поля, такие как язык, положение (широта / долгота), версия приложения, поставщик и т. Д. c.

Я новичок в FCM, но для меня на данный момент не очень понятен процесс регистрации устройства. Мой текущий проект - это серверная служба для мобильных приложений. Итак, у меня есть REST-сервис, использующий djna go -rest-framework.

У меня уже есть API для регистрации / обновления мобильного устройства. Могу ли я повторно использовать его, добавив регистрационный идентификатор FCM?

1 Ответ

0 голосов
/ 30 мая 2020

Вы можете определить свой собственный класс FCMDevice, расширив класс AbstactFCMDevice следующим образом:

from fcm_django.models import AbstractFCMDevice
from django.db import models

class CustomFCMDevice(AbstractFCMDevice):
    language = models.CharField(max_length=35, blank=False)
    position = models.CharField(max_length=35, blank=False)
    app_version = models.CharField(max_length=35, blank=False)
    ...
    ..

вы можете затем использовать свой собственный класс для получения вашего набора запросов:

from custom_fcm_django.models import CustomFCMDevice

device = CustomFCMDevice.objects.all().first()

device.send_message(title="Title", body="Message", icon=..., data={"test": "test"})

вы можете использовать django rest framework APIView для создания конечных точек API, например:

from rest_framework.views import APIView

class FCMDevicesListAPIView(APIView):

permission_classes = (IsAuthenticated, )

def get(self, request):
    queryset = CustomFCMDevice.objects.all()
    serializer = FCMDeviceSerializer(queryset, many=True)
    return Response(serializer.data)
...