Envoi de notifications Push avec Azure Notification Hubs et Node.js

Vue d’ensemble

Important

Pour suivre ce didacticiel, vous avez besoin d'un compte Azure actif. Si vous n’avez pas de compte, vous pouvez créer un compte d’essai gratuit en quelques minutes par le biais de l’essai gratuit Azure.

Ce guide montre comment envoyer des notifications Push à l’aide d’Azure Notification Hubs directement à partir d’une application Node.js.

Les scénarios traités incluent l’envoi de notifications Push à des applications sur les plateformes suivantes :

  • Android
  • iOS
  • Plateforme Windows universelle
  • Windows Phone

Notification Hubs

Azure Notification Hubs offre une infrastructure multiplateforme extensible et conviviale pour l’envoi de notifications Push à des appareils mobiles. Pour plus d’informations sur l’infrastructure de service, voir la page Azure Notification Hubs .

Création d’une application Node.js

La première étape de ce didacticiel consiste à créer une application Node.js vide. Pour obtenir des instructions sur la création d’une application Node.js, consultez Créer et déployer une application Node.js sur un site web Azure, Service cloud Node.js avec Windows PowerShell ou Site web avec WebMatrix.

Configuration de l’application pour utiliser Notification Hubs

Pour utiliser Azure Notification Hubs, vous devez télécharger et utiliser le package AzureNode.js, qui inclut un ensemble intégré de bibliothèques d’aide qui communiquent avec les services REST de notification Push.

Utilisation de Node Package Manager (NPM) pour obtenir le package

  1. Utilisez une interface de ligne de commande telle que PowerShell (Windows), Terminal (Mac) ou Bash (Linux) pour accéder au dossier dans lequel vous avez créé votre application vide.
  2. Exécutez npm install azure-sb dans la fenêtre de commande.
  3. Vous pouvez exécuter manuellement la commande ls ou dir pour vérifier qu’un dossier node_modules a été créé.
  4. Dans ce dossier, recherchez le package azure qui contient les bibliothèques nécessaires pour accéder à Notification Hubs.

Notes

Pour plus d’informations sur l’installation de NPM, consultez le Blog NPMofficiel.

Importation du module

À l’aide d’un éditeur de texte, ajoutez la commande suivante au début du fichier server.js de l’application :

var azure = require('azure-sb');

Configuration d’une connexion Azure Notification Hubs

L’objet NotificationHubService vous permet d’utiliser les hubs de notification. Le code suivant crée un objet NotificationHubService pour le hub de notification nommé hubname. Ajoutez-le vers le début du fichier server.js, après l’instruction relative à l’importation du module azure :

var notificationHubService = azure.createNotificationHubService('hubname','connectionstring');

Obtenez la valeur de connexion connectionstring à partir du portail Azure en effectuant les étapes suivantes :

  1. Dans le volet de navigation de gauche, cliquez sur Parcourir.
  2. Sélectionnez Notification Hubs, puis recherchez le hub à utiliser pour l’exemple. Si vous avez besoin d’aide pour créer un hub de notification, vous pouvez consulter le didacticiel de prise en main de Windows Store.
  3. Sélectionnez Paramètres.
  4. Cliquez sur Stratégies d’accès. Vous pouvez voir les chaînes de connexion d’accès total et partagé.

Portail Azure - Notification Hubs

Notes

Vous pouvez aussi récupérer la chaîne de connexion via l'applet de commande Get-AzureSbNamespace dans Azure PowerShell ou la commande azure sb namespace show dans l’interface CLI Azure Classic.

Architecture générale

L’objet NotificationHubService expose les instances d’objet suivantes pour l’envoi de notifications Push à des appareils et applications spécifiques :

  • Android : utilisez l’objet GcmService, disponible au niveau de notificationHubService.gcm
  • iOS : utilisez l’objet ApnsService, disponible au niveau de notificationHubService.apns
  • Windows Phone : utilisez l’objet MpnsService, disponible au niveau de notificationHubService.mpns
  • Plateforme Windows universelle : utilisez l’objet WnsService, disponible au niveau de notificationHubService.wns

Notes

Le Service de notifications push Microsoft (MPNS) est obsolète et n’est plus pris en charge.

Procédure : Envoyer des notifications Push à des applications Android

L’objet GcmService fournit une méthode send que vous pouvez utiliser pour envoyer des notifications Push à des applications Android. La méthode send accepte les paramètres suivants :

  • Tags : identifiant de balise. Si aucune balise n’est fournie, la notification est envoyée à tous les clients.
  • Payload : charge utile JSON ou de chaîne brute du message.
  • Callback : fonction de rappel.

Pour plus d’informations sur le format de charge utile, voir la documentation relative à la charge utile.

Le code suivant utilise l’instance GcmService exposée par NotificationHubService pour envoyer une notification Push à tous les clients inscrits.

var payload = {
  data: {
    message: 'Hello!'
  }
};
notificationHubService.gcm.send(null, payload, function(error){
  if(!error){
    //notification sent
  }
});

Procédure : Envoyer des notifications Push à des applications iOS

Comme pour les applications Android décrites ci-dessus, l’objet ApnsService fournit une méthode send permettant d’envoyer des notifications Push à des applications iOS. La méthode send accepte les paramètres suivants :

  • Tags : identifiant de balise. Si aucune balise n’est fournie, la notification est envoyée à tous les clients.
  • Payload : charge utile JSON ou de chaîne du message.
  • Callback : fonction de rappel.

Pour plus d’informations sur le format de charge utile, consultez la section Contenu de la notification dans le Guide UserNotifications.

Le code suivant utilise l’instance ApnsService exposée par NotificationHubService pour envoyer un message d’alerte à tous les clients :

var payload={
    alert: 'Hello!'
  };
notificationHubService.apns.send(null, payload, function(error){
  if(!error){
      // notification sent
  }
});

Procédure : Envoyer des notifications Push à des applications Windows Phone

L’objet MpnsService fournit une méthode send permettant d’envoyer des notifications Push à des applications Windows Phone. La méthode send accepte les paramètres suivants :

  • Tags : identifiant de balise. Si aucune balise n’est fournie, la notification est envoyée à tous les clients.
  • Payload : charge utile XML du message.
  • TargetName - toast pour les notifications toast. token pour les notifications par vignette.
  • NotificationClass : priorité de la notification. Pour les valeurs valides, consultez la section Éléments d’en-tête HTTP de l’article Notifications Push d’un serveur .
  • Options : en-têtes de demande facultatifs.
  • Callback : fonction de rappel.

Pour la liste des options TargetName, NotificationClass et d’en-tête valides, consultez la page Envoyer des notifications Push à partir d’un serveur.

L’exemple de code suivant utilise l’instance MpnsService exposée par NotificationHubService pour envoyer une notification Push toast :

var payload = '<?xml version="1.0" encoding="utf-8"?><wp:Notification xmlns:wp="WPNotification"><wp:Toast><wp:Text1>string</wp:Text1><wp:Text2>string</wp:Text2></wp:Toast></wp:Notification>';
notificationHubService.mpns.send(null, payload, 'toast', 22, function(error){
  if(!error){
    //notification sent
  }
});

Procédure : Envoyer des notifications Push à des applications de la plateforme Windows universelle (UWP)

L’objet WnsService fournit une méthode send permettant d’envoyer des notifications Push à des applications de la plateforme Windows universelle. La méthode send accepte les paramètres suivants :

  • Tags : identifiant de balise. Si aucune balise n’est fournie, la notification est envoyée à tous les clients inscrits.
  • Payload : charge utile XML du message.
  • Type : type de notification.
  • Options : en-têtes de demande facultatifs.
  • Callback : fonction de rappel.

Pour obtenir la liste des types et en-têtes de demande valides, consultez En-têtes de demande et de réponse des services de notifications Push.

Le code suivant utilise l’instance WnsService exposée par NotificationHubService pour envoyer une notification Push toast à une application UWP :

var payload = '<toast><visual><binding template="ToastText01"><text id="1">Hello!</text></binding></visual></toast>';
notificationHubService.wns.send(null, payload , 'wns/toast', function(error){
  if(!error){
      // notification sent
  }
});

Étapes suivantes

Les exemples d’extrait de code ci-dessus permettent de créer facilement une infrastructure de service pour remettre des notifications Push à un vaste éventail d’appareils. À présent que vous avez appris les bases de l’utilisation de Notification Hubs avec Node.js, suivez les liens suivants pour en savoir plus sur l’extension de ces fonctionnalités.