Depuis peu il est possible d’envoyer des notifications push depuis Azure Mobile Center.
Un usage classique des notifications est d’envoyer un rappel à l’utilisateur au bout d’un certain temps afin de l’inciter à réutiliser l’application. Il est bien évident que dans ce cas d’usage on a pas quelqu’un qui va envoyer à la main des notifications via le portail. Il nous faut donc un traitement automatisé. Alors bien qu’il soit possible d’utiliser le portail, le plus souvent ce sont les services web associés à l’application qui envoient automatiquement des notifications.
Configuration de l’application mobile
Pour cet article je présuppose que vous avez déjà des applications mobiles avec le Push configuré. A noter que Azure Mobile Service utilise Firebase (FCM) pour Android, on est donc parfaitement à jour !
Vous trouverez comment configurer vos applications avec ces excellentes documentations :
- Xamarin iOS : https://docs.microsoft.com/en-us/mobile-center/sdk/push/xamarin-ios
- Xamarin Android : https://docs.microsoft.com/en-us/mobile-center/sdk/push/xamarin-android
- Il existe d’autres documentations pour différents types de projets mobiles, cliquez sur un des liens ci-dessus pour choisir votre plateforme/techno préférée.
Les API
API First
Un des gros points forts d’Azure Mobile Center est la façon même avec laquelle le portail est développé. Tout d’abord l’API REST est créée et ensuite l’interface graphique est ajoutée. Cela veut donc dire que tout ce qui est accessible par le portail l’est en REST !
La documentation de ces API est disponible sous forme d’un Swagger sur https://docs.microsoft.com/en-us/appcenter/api-docs/ et on peut les tester directement.
Le seul pré-requis est de créer un token d’accès. Pour cela, rendez-vous sur https://mobile.azure.com/settings/apitokens, créez le token et stockez-le dans un endroit sûr car il ne vous sera jamais remontré.
Au moment où j’écris ces lignes l’API Push n’est pas documentée au bon endroit mais dans la partie Analytics. Ne l’ayant pas trouvée sur le moment j’ai utilisé CharlesProxy pour analyser le trafic généré par le portail et mes conclusions sont très positives !
Il est très facile d’envoyer des notifications en REST grâce à Mobile Center et donc de les intégrer dans n’importe quelle plateforme.
Récupération de l’utilisateur
Afin de pouvoir envoyer des push il faut le nom de votre utilisateur. Pour celà il vous suffit d’appeler le service suivant en GET
https://api.mobile.azure.com/v0.1/user
Récupération de l’application
Afin de pouvoir envoyer des push il faut également le nom de l’application. Pour celà il vous suffit d’appeler le service suivant en GET
https://api.mobile.azure.com/v0.1/apps
Envoi d’un push
Maintenant que l’on a les informations nécessaires, l’envoi d’une notification est aussi simple que de faire un POST sur la bonne url :
https://api.mobile.azure.com/v0.1/apps/[username]/[applicationname]/push/notifications
Le payload de notre push sera sous forme de json, alors on précise le bon header HTTP :
Content-Type: application/json
Ne reste plus qu’à écrire le payload de notre push dans le corps du message HTTP :
{
"notification_target": null,
"notification_content": {
"name": "Test",
"title": "Coucou Monde !",
"body": "Test depuis Postman !",
"custom_data": {}
}
}
Ne reste plus qu’à envoyer la notification !
Conclusion
Dans cet article je vous ai montré comment envoyer une notification push vers tous les utilisateurs de votre application grâce aux API REST de Azure Mobile Center. Il est possible de restreindre les utilisateurs cibles, mais c’est une histoire pour une autre fois.
Aujourd’hui, ma vie de développeur mobile est devenue beaucoup plus simple et tout cela c’est grâce à Azure Mobile Center. N’hésitez pas, comme moi, à surveiller les mises à jour de Azure Mobile Center car parfois ça vaux vraiment le coup :)
Comments