Processus d'une notification Push
**Prérequis**: Avoir obtenu un identifiant auprès d'un PNS (apple ou android)
- Utiliser le webservice du hub pour référencer le device sur le système de push Geolys
- S'abonner aux notifications via le hub
- Stocker les informations (id d'enregistrement) sur le device.
- Envoyer/recevoir des notifications
Enregistrement du device
Requête:
PUT /hubs/{hub}/_vti_bin/HubNotificationService.svc/RegisterDeviceId/{pns-id}
Réponse:
ID d'enregistrement du device (device-id) fourni par la plateforme, par exemple :
7100090856576408604-4663139729199879403-1
Enregistrement du device sur Azure (2ème méthode, évitant les caractères spéciaux dans l'URL sur Android)
Requête:
PUT /hubs/{hub}/_vti_bin/HubNotificationService.svc/RegisterDeviceIdFromBody
Corps:
{
"PNSID": "{pns-id}"
}
"PNSID": "{pns-id}"
}
Réponse:
ID d'enregistrement du device fourni par la plateforme, par exemple :
{device-id}
Abonnement aux notifications
Le système de notifications gère les abonnements à des flux via des "tags". Cela permet de recevoir des notifications spécifiques à un tag.
Requête:
PUT /hubs/{hub}/_vti_bin/hubnotificationservice.svc/RegisterDeviceForNotification/{device-id}
- {device-id} : ID d'enregistrement du device
Corps:
{
"Platform": "wns",
"Handle": "{pns-id}",
"ChannelUri": "...",
"Tags": ["Tag1","Tag2"]
}
"Platform": "wns",
"Handle": "{pns-id}",
"ChannelUri": "...",
"Tags": ["Tag1","Tag2"]
}
- Platform : "wns" (Windows) ou "apns" (Apple) ou "gcm" (Android)
- Handle (identifiant du PNS)
- Tags (tableau de strings)
- ChannelUri (utilisé par les Apps Windows, laisser vide pour les autres systèmes)
Réponse:
Format: JSON
"true"
Suppression d'un device enregistré sur Azure
Requête:
PUT /hubs/{hub}/_vti_bin/HubNotificationService.svc/UnregisterDeviceId/{pns-id}
Réponse:
Format: JSON
"true"
Suppression du device sur Azure (2ème méthode, évitant les caractères spéciaux dans l'URL sur Android)
Requête:
PUT /hubs/{hub}/_vti_bin/HubNotificationService.svc/UnregisterDeviceIdFromBody
Corps:
{
"PNSID": "{pns-id}"
}
"PNSID": "{pns-id}"
}
Réponse:
Format: JSON
"true"