Firebase
Une solution de messagerie multiplateforme fournie par Google pour assurer la livraison des messages gratuitement.
Lors du Google I / O 2017 qui s'est tenu l'autre jour, il semble que les fonctions du système d'analyse aient été grandement améliorées en plus des fonctions de base.
Cette fois, il y avait des points addictifs lors de l'appel de cette Firebase Cloud Messaging (ci-après, FCM) du côté du serveur, donc je vais le résumer comme un mémorandum.
FCM
Un mécanisme qui permet une distribution push flexible vers un large éventail de cibles telles que les terminaux mobiles et les navigateurs Web. Fondamentalement, il est nécessaire de mettre en œuvre le processus de transmission dans chaque langue.
Firebase Notifications
Un mécanisme qui vous permet d'envoyer des notifications push à partir du tableau de bord Firebase. C'est facile car il n'est pas nécessaire de l'implémenter, mais seules de simples notifications push peuvent être effectuées.
Cette fois, je résumerai brièvement le premier.
Lorsque la communication HTTP est effectuée au format ci-dessus, les informations de réponse suivantes seront renvoyées. Officiel: FCM Response
Exemple de réponse FCM
{
"multicast_id":6782339717028231855,
"success":0,
"failure":1,
"canonical_ids":0,
"results":[
{
"error":"InvalidRegistration"
}
]
}
Alors, faites un modèle pour recevoir ce qui précède.
FirebaseResponse.java
public class FirebaseResponse
{
public Long multicast_id;
public Integer success;
public Integer failure;
public Integer canonical_ids;
public List<Result> results;
class Result
{
private String message_id;
private String registration_id;
private String error;
}
//L'accesseur est omis car lombok est utilisé
}
FirebaseClient.java
public class
{
private final String SAMPLE_MESSAGE= "{\"to\": \"xxx\",\"notification\": {\"title\": \"C'est un titre\",\"body\": \"C'est le texte\"},\"data\": {\"greet\": \"Hello. World!!\"}}";
private final String FCM_END_POINT = "https://fcm.googleapis.com/fcm/send";
private final String SERVER_KEY = "Clé du serveur";
RestTemplate template = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
Charset utf8 = Charset.forName("UTF-8");
MediaType mediaType = new MediaType(MediaType.APPLICATION_JSON, utf8);
headers.setContentType(mediaType);
headers.set( "Authorization", String.format("key=%s", SERVER_KEY) );
HttpEntity< String > entity = new HttpEntity< String >( SAMPLE_MESSAGE, httpHeaders );
FirebaseResponse response = template.postForObject(FCM_END_POINT , entity, FirebaseResponse.class );
LOGGER.info(String.format("Firebase Push Result. header:[%s], message:[%s], response:[%s]", httpHeaders, SAMPLE_MESSAGE, response ));
}
Le traitement des requêtes et l'acquisition des réponses sont possibles de cette manière.
J'étais accro à la partie où la partie japonaise de la notification push arrivée au terminal était déformée comme "?????????".
c'est
Charset utf8 = Charset.forName("UTF-8");
MediaType mediaType = new MediaType(MediaType.APPLICATION_JSON, utf8);
headers.setContentType(mediaType);
C'était parce que je n'ai pas fait ce qui précède. (Il est également écrit fermement en Officiel. Orz)
Dans le cas des notifications Firebase, la notification envoyée depuis le tableau de bord reste sous forme de journal, de sorte que l'analyse des données peut facilement saisir l'état d'envoi, mais dans le cas de FCM, seul le résultat d'envoi est renvoyé, de sorte que la gestion de l'historique des notifications d'envoi, etc. est unique. Il doit être pris en compte dès son développement en.
Cela dit, il n'a pas beaucoup d'informations, donc je pense que c'est un petit fardeau.
C'est un service dans lequel Google consacre beaucoup d'efforts, alors j'ai pensé que c'était une technologie qui pourrait devenir une arme pour vivre dans la future société informatique en la portant.
Cependant, comme la connaissance du développement d'applications smartphone est essentielle pour la recevoir sur le terminal, je pense que je devrais la porter à partir de la notification push du navigateur pour le moment. .. ..
À ce moment-là, je vais le résumer à nouveau sous forme d'article.
Eh bien.
Recommended Posts