Steeds meer bedrijven integreren de mogelijkheden van Microsoft Teams in hun operationele processen. In een data gedreven organisatie zijn er meerdere scenario’s denkbaar waarbij je automatische chatberichten wilt plaatsen om teamleden te informeren of attenderen op actuele onderwerpen. Microsoft Teams heeft met de Graph Api connectoren beschikbaar waarmee dit mogelijk is. In deze blog leg ik de stappen uit hoe je van deze API gebruik kunt maken.
Registratie van een App
De eerste stap is om in de portal van Azure een app te registreren. In de portal kunnen aan deze app de juiste machtigingen worden toegekend om via de Graph Api de gebruikers te authentiseren en de juiste endpoints aan te roepen om Chat berichten te kunnen plaatsen.
Ga hiervoor in de Azure Portal naar de service Azure Active Directory
Ga vervolgens naar App registratie en kies voor Nieuwe registratie:
Geef de App een toepasselijke naam en stel ook de Omleidings URI (redirect URI) in. De redirect URI heb je later nodig om de Autorisatie code op te halen.
In het onderdeel Overzicht vind je de client-id en de tenant-id.
Deze heb je later nodig om de API aan te kunnen roepen.
Kies nu voor API machtigingen en voor ‘Een machtiging toevoegen’ om aan de nieuwe app de juiste machtigingen toe te voegen.
Stel de volgende machtigingen in:
De app staat nu helemaal klaar om gebruikt te worden!
Autorisatie code opvragen
De volgende stap is het opvragen van een autorisatiecode.
Ga in een browser hiervoor naar de volgende url:
https://login.microsoftonline.com/{tenant-id}/oauth2/authorize?client_id={client-id}&response_type=code&redirect_uri={redirect-URI}&resource=https://graph.microsoft.com/
In deze URL moeten drie variabelen worden ingevuld die in de eerste stap bij het registreren van de app zijn aangemaakt:
- Tenant ID
- Client ID
- Redirect URI
Log in met een gebruiker namens wie de Chat berichten moeten worden geplaatst.
Microsoft toont vervolgens een pop up waarin toestemming aan de app wordt verleend om acties namens de gebruiker uit te voeren. In dit overzicht staan de machtigingen die in een eerdere stap aan de app zijn toegekend.
Nadat akkoord is gegeven word je doorgeleid naar de ingestelde redirect URI.
In deze URI is de Autorisatie code opgenomen die we nodig hebben.
https://www.smartinsight.nu/?ReturnUrl=%2F%3Fcode%3DAQA…%26session_state%3D923
Zoek het onderdeel in de URL op waar code staat en kopieer de code na %3D toe aan %26.
Autorisatie token opvragen
De autorisatie code kan gebruikt worden om een access token op te vragen.
In deze blog gebruiken we hiervoor de applicatie Postman.
Maak een POST request aan naar de volgende URL:
https://login.microsoftonline.com/[tenant ID]/oauth2/v2.0/token
Vul op de juiste plaats jouw Tenant ID op.
Gebruik de volgende header:
- Content Type = application/x-www-form-urlencoded
Gebruik in de body de volgende waardes:
Als alles goed gaat, is het resultaat van dit request een access token!
Het access token heb je nodig om de volgende stappen uit te voeren.
Juiste ID’s ophalen
Alle elementen in Teams zijn herkenbaar aan ID’s. Deze unieke identifiers kunnen gebruikt worden om in het juiste kanaal een chat bericht te plaatsen.
We hebben de volgende ID’s nodig:
- User ID
- Team ID
- Channel ID
In de GET requests gebruiken we de volgende headers:
Gebruik het access token uit de vorige stap.
Achtereenvolgens kunnen we hiervoor de volgende GET endpoints gebruiken waarbij we elke keer het access token als autorisatie kunnen gebruiken:
- https://graph.microsoft.com/v1.0/me Om het User ID op te halen
- https://graph.microsoft.com/v1.0/users/ [user ID]/joinedTeamsGebruik in het GET request het User ID uit de vorige stap
- https://graph.microsoft.com/v1.0/teams/[TEAM ID]/channelsGebruik in het GET request het Team ID uit de vorige stap
Posten van een Chat message
We hebben nu alle informatie om een bericht te posten in een Channel.
We maken hiervoor een POST request aan naar het volgende endpoint:
https://graph.microsoft.com/beta/teams/[TEAM ID]/channels/[CHANNEL ID]/messages
Vul op de juiste plaats het Team ID en Channel ID in.
In de body gebruiken we het volgende bericht in JSON formaat om het bericht te plaatsen:
Zoals je ziet is het zelfs mogelijk om een specifieke gebruiker te ‘mentionnen’. Maar je kunt ook alleen de body gebruiken met het bericht in het “content” element.
Afsluiting
In deze blog is laten zien hoe je met behulp van Microsoft Graph kunt integreren met Microsoft Teams tot op het niveau van het plaatsen van Chat berichten in specifieke channels.
De Microsoft Graph API heeft nog veel meer mogelijkheden. Via de volgende link is meer informatie te vinden: https://docs.microsoft.com/en-us/graph/
Meer weten over onze oplossingen?
Onze consultants hebben veel ervaring binnen een grote verscheidenheid aan branches.
Eens verder brainstormen over de mogelijkheden voor jouw organisatie?
Maak kennis met onze specialist Arnoud van der Heiden.