MS Teams Presence Status auf HTML Seite anzeigen
Hallo zusammen,
ich suche eine Möglichkeit den Presence Status von Microsoft Teams abzufragen und auf einer HTML Seite anzuzeigen.
Wir haben an der Tür kleine Displays, die als Türschilder fungieren. Aktuell läuft dort eine HTML Seite, auf der man über Buttons die Anzeige der Verfügbarkeit steuern kann.
Zukünftig soll hier jedoch der Teams Verfügbarkeits Status angezeigt werden.
Da in den Büros bis zu 4 Mitarbeiter:innen sitzen, sollen auch alle Verfügbarkeiten angezeigt werden.
Ich habe schon eine Option über Microsoft Graph gefunden, die mir aber sehr kompliziert erscheint und ich auch nicht sicher bin, ob dieser Weg für meine Anwendung überhaupt funktioniert.
Wenn da jemand mehr Ahnung hat, bin ich dankbar über eine Rückmeldung.
Gruß
Stefan
ich suche eine Möglichkeit den Presence Status von Microsoft Teams abzufragen und auf einer HTML Seite anzuzeigen.
Wir haben an der Tür kleine Displays, die als Türschilder fungieren. Aktuell läuft dort eine HTML Seite, auf der man über Buttons die Anzeige der Verfügbarkeit steuern kann.
Zukünftig soll hier jedoch der Teams Verfügbarkeits Status angezeigt werden.
Da in den Büros bis zu 4 Mitarbeiter:innen sitzen, sollen auch alle Verfügbarkeiten angezeigt werden.
Ich habe schon eine Option über Microsoft Graph gefunden, die mir aber sehr kompliziert erscheint und ich auch nicht sicher bin, ob dieser Weg für meine Anwendung überhaupt funktioniert.
Wenn da jemand mehr Ahnung hat, bin ich dankbar über eine Rückmeldung.
Gruß
Stefan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 21830278352
Url: https://administrator.de/contentid/21830278352
Ausgedruckt am: 24.11.2024 um 10:11 Uhr
9 Kommentare
Neuester Kommentar
Zitat von @myair85:
Ich habe schon eine Option über Microsoft Graph gefunden, die mir aber sehr kompliziert erscheint und ich auch nicht sicher bin, ob dieser Weg für meine Anwendung überhaupt funktioniert.
Das wäre schon der richtige Weg (z. B. über getPresencesByUserId). Ob dies dann in der Anwendung funktioniert, kann hier niemand beurteilen.
Moin,
da ich mit der Graph API immer nur mit PowerShell arbeite hier ein kleiner Hinweis für Powershell:
Aus dem Modul Microsoft.Graph.CloudCommunications kannst du bspw. folgende CMDlets nutzen:
Hier der Link:
MS Graph 1.0 - Presence Resource Type
Unter "Request" siehst du dann auch andere Programmiersprachen, mit denen zu die Abfrage laufen lassen kannst --> Java, Javascript, C# PHP, Python...
Vielleicht wirst du hier fündig und kannst es mit der Graph API realisieren (die auch erst seit kurzem zur Verfügung steht)?
Einen anderen Weg die Presence auszuwerten kenne ich nicht.
VG
Celiko
da ich mit der Graph API immer nur mit PowerShell arbeite hier ein kleiner Hinweis für Powershell:
Aus dem Modul Microsoft.Graph.CloudCommunications kannst du bspw. folgende CMDlets nutzen:
Get-MgUserPresence #Abruf der Status für einen einzelnen User
Get-MgCommunicationPresenceByUserId #Abruf mehrere User (User ID notwendig)
Hier der Link:
MS Graph 1.0 - Presence Resource Type
Unter "Request" siehst du dann auch andere Programmiersprachen, mit denen zu die Abfrage laufen lassen kannst --> Java, Javascript, C# PHP, Python...
Vielleicht wirst du hier fündig und kannst es mit der Graph API realisieren (die auch erst seit kurzem zur Verfügung steht)?
Einen anderen Weg die Presence auszuwerten kenne ich nicht.
VG
Celiko
wo liegt die HTML Datei bisher? Am einfachsten wird es sicherlich sein, wenn irgendwo ein Powershell-Script z.B. minütlich läuft und neue HTML Dateien erzeugt und ablegt. Alternativ kann man die Graph API auch direkt per JavaScript ansprechen, aber das halte ich für komplexer / eher was für geübte Webentwickler.
Ich selber würde mein Glück über https://github.com/microsoftgraph/msgraph-sdk-php versuchen, da mir PHP am ehesten liegt
Was für Displays sind das?
Ich selber würde mein Glück über https://github.com/microsoftgraph/msgraph-sdk-php versuchen, da mir PHP am ehesten liegt
Was für Displays sind das?
Moin,
wenn ich mit der Graph API arbeite nutze ich immer eine Managed Identity.
Das heißt, dass deine Managed Identity die Presence-Daten von der Graph API abholt und du die dann nutzen kannst, um sie auf deiner HTML Seite zu aktualisieren.
Die Managed Identity kannst du per GUI erstellen und anschließend per Powershell bspw. berechtigen.
Die Managed Identity weise ich ich immer einer virtuellen Maschine zu, die sich dann im Azure auch als Managed Identity herantreten darf mit den entsprechenden Berechtigungen.
Hier mal ein Beispiel, wie ich eine Managed Identity eine Berechtigung zuweise:
WICHTIG:
Wo ich paar mal durchgedreht bin ist, dass die Berechtigung eine Weile dauern kann, bis das greift. Deshalb am besten Berechtigung setzen und morgen testen, ob das geht*
Ob das bei euch möglich ist weiß ich nicht - musste dich mal schlau machen.
Gibt aber auch andere Möglichkeiten. Findest im Internet bestimmt was dazu 👌
Sobald du die Daten abgerufen hast musst du schauen, wie du die auf deine HTML Seite aktualisieren lässt.
Da bin ich leider mit meinem Wissen an einem Stau, da ich noch nichts wirklich mit HTML gemacht habe.
VG
Celiko
wenn ich mit der Graph API arbeite nutze ich immer eine Managed Identity.
Das heißt, dass deine Managed Identity die Presence-Daten von der Graph API abholt und du die dann nutzen kannst, um sie auf deiner HTML Seite zu aktualisieren.
Die Managed Identity kannst du per GUI erstellen und anschließend per Powershell bspw. berechtigen.
Die Managed Identity weise ich ich immer einer virtuellen Maschine zu, die sich dann im Azure auch als Managed Identity herantreten darf mit den entsprechenden Berechtigungen.
Hier mal ein Beispiel, wie ich eine Managed Identity eine Berechtigung zuweise:
#Grants a managed identity (application) access to the Graph API Permission
# Managed Serive Identity (msi) per GUI erstellen und dann die ID in der Variable $msiClientID hinterlegen
#--> Hier Managed Identity ID eingeben, die zuvor per GUI im Azure erstellt wurde, Beispiel:
$msiClientID = "15b7b22c-c154-4fea-a5a9-3d6ef0007f69"
#Meine msiClientID habe ich natürlich verändert :)
#Globaler Administrator vereinfacht Berechtigungsproblematiken *
#$cred = Get-Credential
#Connect-AzureAD -Credential $cred #ONLY WORKING ON BASIC AUTH - NOT WITH MFA
Connect-AzureAD #WORKS WITH MFA! --> anmelden als Global-Admin (GA)
# Graph API Service Principal (immer gleich)
$graph = Get-AzureADServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000'"
# app permission set --> Welche Berechtigung der Managed Identity gegeben werden soll. Bitte die Graph API Doku heranziehen für die korrekte Berechtigung. Hier nur ein Beispiel:
#$msGraphPermission = "User.Read.All"
# Hol die Graph API Berechtigungs ID
$appRoles = $graph.AppRoles | Where-Object {$_.Value -in $msGraphPermission -and $_.AllowedMemberTypes -contains "Application"}
#AppID of Managed indentiy
$msi = Get-AzureADServicePrincipal -Filter "appId eq '$msiClientID'"
#Zuweisen der Graph API Berechtigung zur Managed Identity
$approles | ForEach-Object {New-AzureADServiceAppRoleAssignment -Objectid $msi.ObjectId -principalid $msi.objectid -id $approles.id -resourceid $graph.ObjectId}
Zum entfernen:
#$approles | ForEach-Object {Remove-AzureADServiceAppRoleAssignment -Objectid $msi.ObjectId -principalid $msi.objectid -id $approles.id -resourceid $graph.ObjectId}
WICHTIG:
Wo ich paar mal durchgedreht bin ist, dass die Berechtigung eine Weile dauern kann, bis das greift. Deshalb am besten Berechtigung setzen und morgen testen, ob das geht*
Ob das bei euch möglich ist weiß ich nicht - musste dich mal schlau machen.
Gibt aber auch andere Möglichkeiten. Findest im Internet bestimmt was dazu 👌
Sobald du die Daten abgerufen hast musst du schauen, wie du die auf deine HTML Seite aktualisieren lässt.
Da bin ich leider mit meinem Wissen an einem Stau, da ich noch nichts wirklich mit HTML gemacht habe.
VG
Celiko