thx-fcm¶
Nei vari progetti sta nascendo l’esigenza di utilizzare messaggi di tipo push per inviare notifiche informative ai vari frontend; come servizio per l’invio è stato scelto è Firebase Cloud Messaging (FCM).
Per semplificare la configurazione e l’interazione con FCM, è stato creato thx-fcm
come wrapper del pacchetto django-fcm
.
Per installare il pacchetto: aggiungere nel setup.py thx-fcm
e poi installare con il sistema corrente (pip, buildout …)
Assolutamente necessario creare un progetto su https://console.firebase.google.com/ e inserire la chiave FCM generata nel settings FCM_APIKEY
Di seguito gli altri settings:
THX_FCM_DEVICE_ADMIN_USER
= “thux”THX_FCM_DEVICE_DELETE_INVALID_REG_ID
= FalseFCM_DEVICE_MODEL
= “thx_fcm.Device”Per gli altri settings vedere https://django-fcm.readthedocs.io/en/latest/
Device¶
È stata creata la classe Device estendendo la classe AbstractDevice (di django-fcm) per ridefinirne alcuni attributi e per aggiungere funzionalità
Device
(AbstractDevice
,UserModel
,DateModel
,OrderedModel
)
Modelli¶
-
class
thx.fcm.models.
Device
(*args, **kwargs)[sorgente]¶ Device
è una classe che estendeAbstractDevice
didjango-fcm
eCleanModel
,UserModel
,DateModel
,OrderedModel
di thx-core.Alla classe vengono aggiunti alcuni attributi per raccogliere ulteriori informazioni dei vari device che vengono registrati; il campo
reference
può essere utilizzato per indicare per esempio l’utente o un codice univoco per individuare il device associato ad esso.Infine sono stati aggiunti i metodi sotto riportati.
Le notifiche possono essere inviate partendo da una istanza device precisa, oppure da un queryset.
-
exception
DoesNotExist
¶
-
exception
MultipleObjectsReturned
¶
-
classmethod
get_test_data_for_push
()[sorgente]¶ genera payload di esempio per il campo data (sezione custom della notifica)
-
classmethod
get_test_extra_option_for_push
()[sorgente]¶ genera payload di opzioni extra
-
classmethod
get_test_notification_for_push
()[sorgente]¶ genera payload di esempio per il campo notification (sezione base per la notifica)
-
mark_inactive
(**kwargs)[sorgente]¶ metodo ingaggiato dal sistema quando si ottiene una risposta di device invalido da FCM
-
send_test_push_message
(data=None, notification=None, extra_option=None)[sorgente]¶ invia notifica di test tramite FCM
- Parametri
data – payload customizzato da inviare con la notifica; se non valorizzata verrà impostata col metodo get_test_data_for_push
notification – payload di base della notifica; se non valorizzata verrà impostata col metodo get_test_notification_for_push
extra_options – payload extra da inviare con la notifica; se non valorizzata verrà impostata col metodo get_test_extra_option_for_push
-
exception