Meeting, Teams et Graph
Utilisation de Graph
Graph API possède de nombreuses fonctionnalités et un très grand nombre de "endpoints" pouvant vous fournir des données en tout genre concernant votre organisation.
Graph Explorer vous permet d'effectuer des appels directement depuis le navigateur:
Pour obtenir les données de Presence de votre organisation, il faut tout d'abord connaître les ID Microsoft des personnes présentes au sein de votre organisation.
Les ID Microsoft se présentent sous la forme d' UUID comme ceci : 438f6dae-509e-4da2-bbb1-dc5a1697147f
Pour obtenir les Presences des utilisateurs, nous pouvons faire un appel à l'endpoint /users/ de Graph, pour obtenir les données des users, et ensuite utiliser leurs UUID pour utiliser l'endpoint Presence.
Présence
L'endpoint Presence pour obtenir la présence d'un seul utilisateur est le suivant:
GET: GRAPH_URL/beta/users/{user-id}/presence
{user-id} = UUID Microsoft
GET: GRAPH_URL/beta/users/cb4bff89-8832-4c5f-a1ad-15efc6e8f203/presence donnera donc ceci:
{
"id": "cb4bff89-8832-4c5f-a1ad-15efc6e8f203",
"availability": "Available",
"activity": "Available",
"statusMessage": null,
"outOfOfficeSettings": {
"message": null,
"isOutOfOffice": false
}
}
L'user est En ligne (Available), et n'a pas configuré de message d'absence.
Plusieurs Utilisateurs
Pour obtenir la Presence de plusieurs utilisateurs, inutile de boucler sur les users et d'appeler l'endpoint à chaque fois (les performances se dégradent assez vite).
Il existe un endpoint spécial:
POST: GRAPH_URL/beta/communications/getPresencesByUserId
Il vous suffira de poster un JSON contenant les UUID Microsoft de vos utilisateurs, la réponse se présentera comme suit:
....
{
"id": "7bc1614e-f552-4167-91c2-7fe83a783b64",
"availability": "Offline",
"activity": "Offline",
"statusMessage": null,
"outOfOfficeSettings": {
"message": null,
"isOutOfOffice": false
}
},
{
"id": "0b4f2b85-4788-42a3-98bf-2ea289e66ed5",
"availability": "Offline",
"activity": "Offline",
"statusMessage": null,
"outOfOfficeSettings": {
"message": null,
"isOutOfOffice": false
}
},
....