Ga naar hoofdinhoud

Meeting, Teams en Graph

Graph gebruiken

De Graph API biedt veel functionaliteiten en een breed scala aan endpoints die allerlei soorten gegevens over je organisatie kunnen leveren.

Graph Explorer laat je direct vanuit de browser calls uitvoeren:

Graph Explorer | Try Microsoft Graph APIs - Microsoft Graph

Om de aanwezigheidsgegevens van je organisatie op te halen, moet je eerst de Microsoft-ID's kennen van de mensen in je organisatie.

Microsoft-ID's hebben de vorm van UUID's, bijvoorbeeld: 438f6dae-509e-4da2-bbb1-dc5a1697147f

Om de aanwezigheid van gebruikers op te halen, kunnen we de Graph /users/-endpoint aanroepen om gebruikersgegevens op te halen en vervolgens hun UUID's gebruiken met de Presence-endpoint.

Aanwezigheid

De Presence-endpoint om de aanwezigheid van één gebruiker op te halen is:

GET: GRAPH_URL/beta/users/{user-id}/presence

{user-id} = Microsoft UUID

GET: GRAPH_URL/beta/users/cb4bff89-8832-4c5f-a1ad-15efc6e8f203/presence geeft daarom het volgende terug:

{
"id": "cb4bff89-8832-4c5f-a1ad-15efc6e8f203",
"availability": "Available",
"activity": "Available",
"statusMessage": null,
"outOfOfficeSettings": {
"message": null,
"isOutOfOffice": false
}
}

De gebruiker is online (Available) en heeft geen afwezigheidsbericht geconfigureerd.

Meerdere gebruikers

Om de aanwezigheid van meerdere gebruikers op te halen, is het niet nodig om door de gebruikers te loopen en de endpoint telkens opnieuw aan te roepen (de prestaties verslechteren snel).

Er is een speciale endpoint:

POST: GRAPH_URL/beta/communications/getPresencesByUserId

Je kunt eenvoudig een JSON posten met de Microsoft UUID's van je gebruikers; de respons ziet er dan als volgt uit:

....
{
"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
}
},
....