Enviar notificación Push a un sólo dispositivo, con Delphi y Firebase

 

 


En el post anterior veíamos cómo enviar notificaciones a todos los dispositivos que tengan instalada una determinada app.

Pero es que también podemos enviar una notificación a un dispositivo concreto, para ello tenemos que saber el "Firebase Token" y el "Server Token"

 

Firebase Token

Es una serie de letras y números separados por ":" que identifican de forma única a un dispositivo.

¿Cómo se obtiene?

Pues en el post anterior veíamos que tenemos que añadir un tMemo para recibir el json de la notificación cuando la app está abierta.

el contenido del tMemo cuando se recibe la notificación podría ser algo como:

DeviceID: CE373726BGC8
Ready to receive!
Firebase Token: BnNNnHhHYcIkUjyTTggTTgOj:uuY3uy3y3yhhl12kj3h1234o87sd68f687q6we8r679zbqbekwegiquwyeyhhhhYhY6yHyyh9255

Pues ahí tienen el "Firebase Token"

 

Clave de servidor

Para enviar la notificación también nos hace falta el "Server Token" o "Clave del servidor" que se obtiene desde la página de Firebase- "Configuración del proyecto" - "Cloud Messaging"

 

Cómo enviar la notificación

Para enviar la notificación utilizaremos el componente tNetHttpClient

Creamos un programa en Delphi, con un tEdit, un tMemo, un tButton y el componente NethttpClient1


y en evento OnClic  del botón "Enviar notificación" escribimos:


procedure TForm1.Button1Click(Sender: TObject);
var
Msg: string;
s1, s2: TMemoryStream;
hd: TArray menorque tnamevaluepair mayorque;
st: String;
b: TBytes;
FirebaseToken: string;

begin
deviceToken := Trim(Edit1.Text);

Msg := 'Mi primera notificación Push.';

s1 := TMemoryStream.Create;
s2 := TMemoryStream.Create;

try
NetHTTPClient1.ContentType := 'application/json';

st := '{' +
'"to": "'+FirebaseToken+'",' +
'"notification":{"priority":"hight",' +
'"title":"Título de la Notificación",'+
'"body":"'+Msg+'",'+
'"dry_run":"false"}'+
'}';

setlength(hd, 1);

b := TEncoding.UTF8.GetBytes(st);

s1.Write(b, length(b));
s1.Position := 0;

hd[0].Name:='Authorization';
hd[0].Value:='key=ANADIR AQUI EL SERVER KEY o CLAVE DE SERVIDOR';
NetHTTPClient1.Post('https://fcm.googleapis.com/fcm/send', s1, s2, hd);

s2.Position := 0;
memo1.Lines.LoadFromStream(s2, TEncoding.UTF8);
finally
s1.Free;
s2.Free;
end;
end;

 

Y pulsamos el botón "Enviar notificación"

Con este procedimiento sólo recibirá la notificación el dispositivo con el Firebase Token que  hayamos indicado en el form.


 

No hay comentarios:

Publicar un comentario

Simulación del movimiento de los electrones en un campo electrico

Espectacular simulación realizada con OpenGL del movimiento de los electrones cuando atraviesan un campo eléctrico. Como muestra la image...