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:
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