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 estendeAbstractDevicedidjango-fcmeCleanModel,UserModel,DateModel,OrderedModeldi thx-core.Alla classe vengono aggiunti alcuni attributi per raccogliere ulteriori informazioni dei vari device che vengono registrati; il campo
referencepuò 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