# FireBase FCM
El BackEndBase permite utilizar la API de FireBase (opens new window) para enviar notificaciones a tópicos y subscribir clientes conectados a dichos tópicos.
# Configuración
En el archivo app/config/google/firebase.py se establecen la url para el envío de notificaciones, la url para subscripciones de clientes a tópicos, el token del servidor,
y una lista de tópicos por defecto, necesarios para el correcto funcionamiento del módulo.
Nota
No se utiliza ningún cliente nativo, sólo los servicios Rest proporcionados por FireBase, más información por aquí (opens new window).
# app/config/google/firebase.py
MESSAGE_URI = 'https://fcm.googleapis.com/fcm/send'
SUBSCRIBE_URI = 'https://iid.googleapis.com/iid/v1/{0}/rel/topics/{1}?details=true'
TOKEN_SERVER = 'awesome_token'
DEFAULT_TOPICS_NAME = ['awesome_topic_name']
# Funciones disponibles
El módulo de FireBase FCM, implementado en el BackEndBase contiene las funciones send_to_topic,
subscribe_to_topic
y send_to_receiver
# Enviar notificaciones a un tópico
La función send_to_topic
espera dos parametros, message
y topic_name
message:
La información a enviar.topic_name:
El nombre del tópico.
def send_to_topic(message=None, topic_name=None):
...
Un ejemplo:
from app.ext.firebase.fcm import send_to_topic
...
message = "hola mundo desde firebase module"
topic_name = 'alertas'
resp = send_to_topic(message, topic_name)
print("The response message id:", resp)
# Subscribir clientes
Permite subscribir un cliente desde una app movil ó servicio web a un tópico ó lista de ellos.
La función subscribe_to_topic
espera un parametro: client_token.
client_token:
El token de un cliente autenticado en FireBase (opens new window).
def subscribe_to_topic(client_token=None):
...
Un Ejemplo:
from app.ext.firebase.fcm import subscribe_to_topic
...
client_token = "eVORLjzx9-5:APA91bEhom...-yqx4jbw-TzRABxQj5AOJhf"
subscribe_to_topic(client_token)
El cliente (client_token
) será subscrito a la lista de tópicos definida por DEFAULT_TOPICS_NAME
# Enviar notificaciones a un usuario
Así como enviamos notificaciones a un tópico, también podemos enviarla a un usuario en particular.
La función send_to_receiver
espera dos parametros: message
y registration_id
message:
El mensaje a enviar.registration_id:
El token de un cliente autenticado en FireBase (opens new window).
def send_to_receiver(message=None, registration_id=None):
...
Un Ejemplo:
from app.ext.firebase.fcm import send_to_receiver
...
message = "hola mundo desde firebase module"
registration_id = "eVORLjzx9-5:APA91bEhom...-yqx4jbw-TzRABxQj5AOJhf"
resp = send_to_receiver(message, registration_id)
print("The response message id:", resp)
# Más información
Para mas información consulte:
- API de administración de FireBase (opens new window)
- Compilar solicitudes de mensajes (opens new window)
- La sección de issues (opens new window) del BackEndBase
← CartoDB FireBase Auth →