Deep-Link zu einem Workflow in Teams
Sie können einen Deep-Link erstellen, um eine bestimmte Aufgabe in Teams auszuführen, z. B. um einen neuen Chat zu erstellen, ein Planungsdialogfeld zu öffnen und zum Audio-Video-Anruf zu navigieren.
In diesem Artikel erfahren Sie, wie Sie einen Deep Link erstellen:
- So starten Sie einen neuen Chat
- So öffnen Sie ein Besprechungsplanungsdialogfeld
- So starten Sie einen Audio-Videoanruf
- So geben Sie Inhalte frei, die in Besprechungen bereitgestellt werden sollen
- Zum Besprechungsseitenbereich
- So nehmen Sie an einer Besprechung teil
Deep-Link zum Starten eines neuen Chats
Anwendungen können einen neuen Chat mit einer Liste von Benutzern starten und zusätzliche Informationen wie Chatname und Nachrichtenentwurf im folgenden Format bereitstellen:
https://teams.microsoft.com/l/chat/0/0?users=<user1>,<user2>,...&topicName=<chat name>&message=<precanned text>
Beispiel: https://teams.microsoft.com/l/chat/0/0?users=joe@contoso.com,bob@contoso.com&topicName=Prep%20For%20Meeting%20Tomorrow&message=Hi%20folks%2C%20kicking%20off%20a%20chat%20about%20our%20meeting%20tomorrow
Die Abfrageparameter sind:
-
users
: Die durch Kommas getrennte Liste der Benutzer-IDs, auf der die Chat-Teilnehmer angegeben sind. Der Benutzer, der die Aktion ausführt, ist immer als Teilnehmer enthalten. Das Feld "Benutzer-ID" unterstützt die Microsoft Entra UserPrincipalName, z. B. nur eine E-Mail-Adresse. -
topicName
: Ein optionales Feld für den Anzeigenamen des Chats, wenn ein Chat drei oder mehr Benutzer hat. Wenn dieses Feld nicht angegeben wird, basiert der Bildschirmname des Chats auf den Namen der Teilnehmer. -
message
: Ein optionales Feld für den Nachrichtentext, den Sie in das Feld zum Verfassen des aktuellen Benutzers einfügen möchten, während sich der Chat im Entwurfszustand befindet.
Um diesen Deep-Link mit Ihrem Bot zu verwenden, geben Sie den Deep-Link als URL-Ziel in der Schaltfläche Ihres Karte an, oder tippen Sie über den Aktionstyp auf AktionopenUrl
. Apps können auch Teams JavaScript-Clientbibliothek (TeamsJS) v.2.0 oder höher verwenden, um diese zu erstellen, ohne den Deep Link manuell vorbereiten zu müssen. Im folgenden Beispiel wird TeamsJS verwendet, um zu überprüfen, ob die Chatfunktion unterstützt wird:
if(chat.isSupported()) {
const chatPromise = chat.openGroupChat({ users: ["joe@contoso.com","bob@contoso.com"], topic: "Prep For Meeting Tomorrow", message: "Hi folks kicking off chat about our meeting tomorrow"});
chatPromise.
then((result) => {/*Successful operation*/}).
catch((error) => {/*Unsuccessful operation*/});
}
else { /* handle case where capability isn't supported */ }
Hinweis
Wenn bereits ein Chat vorhanden ist, wird der Deep-Link in diesem Chat geöffnet.
Deep-Link zum Öffnen eines Besprechungsplanungsdialogfelds
Sie können einen Deep-Link in Ihren Teams-Apps erstellen, um ein Besprechungsplanungsdialogfeld zu öffnen und Informationen wie Besprechungstitel und Teilnehmer bereitzustellen, indem Sie die folgenden Methoden verwenden:
- Manuelles Konfigurieren von Deep Link zum Öffnen eines Besprechungsplanungsdialogfelds
- Konfigurieren von Deep Link mithilfe der TeamsJS-Bibliothek zum Öffnen eines Besprechungsplanungsdialogfelds
Es wird zwar empfohlen, typisierte APIs von TeamsJS zu verwenden, es ist jedoch möglich, deep links zum integrierten Teams-Planungsdialogfeld manuell zu erstellen.
Manuelles Konfigurieren von Deep Link zum Öffnen eines Besprechungsplanungsdialogfelds
Verwenden Sie das folgende Format, um einen Deep Link zu konfigurieren, den Sie in einem Bot, Connector oder einer Nachrichtenerweiterung Karte verwenden können:
https://teams.microsoft.com/l/meeting/new?subject=<meeting subject>&startTime=<date>&endTime=<date>&content=<content>&attendees=<user1>,<user2>,<user3>,...
Hinweis
Die Suchparameter unterstützen kein +
Signal anstelle von Leerzeichen (``). Stellen Sie sicher, dass der URI-Codierungscode für Leerzeichen zurückgibt %20
. Ist z. B ?subject=test%20subject
. gut, aber ?subject=test+subject
schlecht.
Die Abfrageparameter sind:
-
attendees
: Eine optionale durch Trennzeichen getrennte Liste von Benutzer-IDs, die die Teilnehmer der Besprechung darstellen. Der Benutzer, der die Aktion ausführt, ist der Besprechungsorganisator. Das Feld "Benutzer-ID" unterstützt nur die Microsoft EntraUserPrincipalName
, in der Regel eine E-Mail-Adresse. -
startTime
: Der optionale Parameter für die Startzeit des Ereignisses. Die Startzeit sollte im langen ISO 8601-Format vorliegen, z. B. 2018-03-12T23:55:25+02:00. -
endTime
: Ein optionaler Parameter für die Endzeit des Ereignisses, ebenfalls im ISO 8601-Format. -
subject
: Ein optionaler Parameter für den Besprechungsgegenstand. -
content
: Ein optionaler Parameter für das Feld "Besprechungsdetails".
Hinweis
Sie können den Standort nicht angeben, da er nicht unterstützt wird. Sie müssen den UTC-Offset angeben, der Zeitzonen enthält, wenn Sie die Start- und Endzeiten generieren.
Um diesen Deep Link mit Ihrem Bot zu verwenden, können Sie den Deep-Link als URL-Ziel in der Schaltfläche Ihres Karte oder als Tippaktion über den openUrl
Aktionstyp angeben.
Beispiel: https://teams.microsoft.com/l/meeting/new?subject=test%20subject&attendees=joe@contoso.com,bob@contoso.com&startTime=10%2F24%2F2018%2010%3A30%3A00&endTime=10%2F24%2F2018%2010%3A30%3A00&content=test%3Acontent
Konfigurieren von Deep Link mithilfe der TeamsJS-Bibliothek zum Öffnen eines Besprechungsplanungsdialogfelds
Sie können auch TeamsJS v.2.0 oder höher in Ihrer Teams-App verwenden, um das Besprechungsplanungsdialogfeld zu öffnen, ohne den Link manuell vorbereiten zu müssen. Um das Planungsdialogfeld in Teams zu öffnen, müssen Sie weiterhin die ursprüngliche Deep-Link-URL-basierte Methode verwenden, da Teams die Kalenderfunktion noch nicht unterstützt:
// Open a scheduling dialog from your tab
if(calendar.isSupported()) {
const calendarPromise = calendar.composeMeeting({
attendees: ["joe@contoso.com", "bob@contoso.com"],
content: "test content",
endTime: "2018-10-24T10:30:00-07:00",
startTime: "2018-10-24T10:00:00-07:00",
subject: "test subject"});
calendarPromise.
then((result) => {/*Successful operation*/}).
catch((error) => {/*Unsuccessful operation*/});
}
else { /* handle case where capability isn't supported */ }
Weitere Informationen zum Arbeiten mit dem Kalender finden Sie in der API-Referenzdokumentation unter calendar-Namespace.
Deep-Link zum Starten eines Audio-Videoanrufs mit Benutzern
Sie können Ihre Teams-Apps so konfigurieren, dass sie einen Deep Link für Benutzer vorbereiten, um einen Einzelanruf, einen Gruppenanruf oder einen Videoanruf zu starten. Sie können nur Audio- oder Audio-Videoanrufe für einen einzelnen Benutzer oder eine Gruppe von Benutzern aufrufen, indem Sie den Anruftyp und die Teilnehmer angeben. Bevor Teams den Anruf platziert, fordert der Client zur Bestätigung auf. Wenn es einen Gruppenanruf gibt, können Sie eine Gruppe von VoIP- und PSTN-Benutzern mit demselben Deep Link-Aufruf anrufen.
In einem Videoanruf bittet der Teams-Client um Bestätigung, bevor das Video des Anrufers für den Anruf aktiviert wird. Der Empfänger des Anrufs kann über das Teams Anrufbenachrichtigungsfenster nur über Audio oder Video antworten.
Hinweis
Diese Methode kann nicht zum Aufrufen einer Besprechung verwendet werden.
Sie können DeepLinks auf eine der folgenden beiden Arten konfigurieren:
- Manuelles Konfigurieren von Deep Link zum Starten von Audio-/Videoanrufen mit Benutzern
- Konfigurieren von Deep Link mithilfe der TeamsJS-Bibliothek zum Starten von Audio-/Videoanrufen mit Benutzern
Manuelles Konfigurieren von Deep Link zum Starten von Audio-/Videoanrufen mit Benutzern
Es wird zwar empfohlen, die typisierten APIs von TeamsJS v.2.0 oder höher zu verwenden, Sie können aber auch einen manuell konfigurierten Deep Link verwenden, um einen Anruf zu starten. Weitere Informationen finden Sie in den folgenden Formaten:
Deep-Link | Format | Beispiel |
---|---|---|
Tätigen eines Audioanrufs | https://teams.microsoft.com/l/call/0/0?users=<user1>,<user2> |
https://teams.microsoft.com/l/call/0/0?users=joe@contoso.com |
Tätigen eines Audio- und Videoanrufs | https://teams.microsoft.com/l/call/0/0?users=<user1>,<user2>&withVideo=true |
https://teams.microsoft.com/l/call/0/0?users=joe@contoso.com&withVideo=true |
Tätigen eines Audio- und Videoanrufs mit einer optionalen Parameterquelle | https://teams.microsoft.com/l/call/0/0?users=<user1>,<user2>&withVideo=true&source=demoApp |
https://teams.microsoft.com/l/call/0/0?users=joe@contoso.com&withVideo=true&source=demoApp |
Tätigen eines Audio- und Videoanrufs an eine Kombination aus VoIP- und PSTN-Benutzern | https://teams.microsoft.com/l/call/0/0?users=<user1>,4:<phonenumber> |
https://teams.microsoft.com/l/call/0/0?users=joe@contoso.com,4:9876543210 |
Nachfolgend sind die Abfrageparameter aufgeführt:
-
users
: Eine durch Trennzeichen getrennte Liste von Benutzer-IDs, die die Teilnehmer des Anrufs darstellen. Das Feld "Benutzer-ID" unterstützt die Microsoft EntraUserPrincipalName
, in der Regel eine E-Mail-Adresse, oder in einem PSTN-Anruf unterstützt es eine PSTN-MRT 4:<-Telefonnummer>. -
withVideo
: Ein optionaler Parameter, den Sie für einen Videoanruf verwenden können. Durch Festlegen dieses Parameters wird nur die Kamera des Aufrufers aktiviert. Der Empfänger des Anrufs hat die Wahl, über einen Audio- oder Audio- und Videoanruf über das Teams-Anrufbenachrichtigungsfenster zu antworten.
Konfigurieren von Deep Link mithilfe der TeamsJS-Bibliothek zum Starten von Audio-/Videoanrufen mit Benutzern
Anwendungen können auch TeamsJS v.2.0 oder höher verwenden, um Anrufe zu starten, ohne diese DeepLinks manuell vorbereiten zu müssen. Der folgende Code veranschaulicht die Verwendung von TeamsJS zum Starten eines Aufrufs:
if(call.isSupported()) {
const callPromise = call.startCall({ targets: ["joe@contoso.com","bob@contoso.com","4:9876543210"], requestedModalities: [call.CallModalities.Audio], source: "demoApp"});
callPromise.
then((result) => {/*Successful operation*/}).
catch((error) => {/*Unsuccessful operation*/});
}
else { /* handle case where capability isn't supported */ }
Deep-Link zum Freigeben von Inhalten in Besprechungen
Um einen Deep-Link zum Freigeben von Inhalten auf der Bühne hinzuzufügen, benötigen Sie einen App-Kontext. Der App-Kontext ermöglicht es dem Teams-Client, das App-Manifest abzurufen und zu überprüfen, ob die Freigabe auf der Bühne möglich ist. Es folgt ein Beispiel für einen App-Kontext:
{ "appSharingUrl" : "https://teams.microsoft.com/extensibility-apps/meetingapis/view", "appId": "9ec80a73-1d41-4bcb-8190-4b9eA9e29fbb" , "useMeetNow": false }
Die Abfrageparameter für den App-Kontext sind:
-
appID
: Dies ist die ID, die aus dem App-Manifest abgerufen werden kann. -
appSharingUrl
: Die URL, die auf der Phase freigegeben werden muss, sollte eine gültige Domäne sein, die im App-Manifest definiert ist. Wenn die URL keine gültige Domäne ist, wird ein Fehlerdialogfeld angezeigt, in dem dem Benutzer eine Beschreibung des Fehlers angezeigt wird. -
useMeetNow
: Dies schließt einen booleschen Parameter ein, der entweder true oder false sein kann.True: Wenn der
useMeetNow
Wert true ist und keine laufende Besprechung vorhanden ist, wird eine neue Besprechung Jetzt besprechen initiiert. Wenn es eine laufende Besprechung gibt, wird dieser Wert ignoriert.False: Der Standardwert von
useMeetNow
ist false. Dies bedeutet, dass ein Kalender-Popup angezeigt wird, wenn ein Deep Link für die Bühne freigegeben wird und keine laufende Besprechung vorhanden ist. Sie können jedoch während einer Besprechung direkt freigeben.
Stellen Sie sicher, dass alle Abfrageparameter ordnungsgemäß URI-codiert sind und der App-Kontext zweimal in der endgültigen URL codiert werden muss. Es folgt ein Beispiel:
const appContext= JSON.stringify({
"appSharingUrl" : "https://teams.microsoft.com/extensibility-apps/meetingapis/view",
"appId": "9cc80a93-1d41-4bcb-8170-4b9ec9e29fbb",
"useMeetNow": false
});
const encodedContext = encodeURIComponent(appContext).replace(/'/g,"%27").replace(/"/g,"%22");
const encodedAppContext = encodeURIComponent(encodedContext).replace(/'/g,"%27").replace(/"/g,"%22");
Ein Deep Link kann entweder über das Teams-Web oder über den Teams-Desktop oder mobilen Client gestartet werden.
Verwenden Sie das folgende Format, um einen Deep-Link aus dem Teams-Web zu starten, um Inhalte auf der Bühne zu teilen:
msteams:/l/meeting-share?deeplinkId={GUID}&fqdn={string}&lm=deeplink&appContext={json encoded app context}
Beispiel: https://teams.microsoft.com/l/meeting-share?deeplinkId={sampleid}&fqdn=teams.microsoft.com&lm=deeplink%22&appContext=%257B%2522appSharingUrl%2522%253A%2522https%253A%252F%252Fteams.microsoft.com%252Fextensibility-apps%252Fmeetingapis%252Fview%2522%252C%2522appId%2522%253A%25229cc80a93-1d41-4bcb-8170-4b9ec9e29fbb%2522%252C%2522useMeetNow%2522%253Atrue%257D
Deep-Link | Format | Beispiel |
---|---|---|
Um die App freizugeben und den Teams-Kalender zu öffnen, wenn useMeeetNow false ist, standardwert. |
https://teams.microsoft.com/l/meeting-share?deeplinkId={deeplinkid}&fqdn={fqdn}}&lm=deeplink%22&appContext={encoded app context} |
https://teams.microsoft.com/l/meeting-share?deeplinkId={sampleid}&fqdn=teams.microsoft.com&lm=deeplink%22&appContext=%257B%2522appSharingUrl%2522%253A%2522https%253A%252F%252Fteams.microsoft.com%252Fextensibility-apps%252Fmeetingapis%252Fview%2522%252C%2522appId%2522%253A%25229cc80a93-1d41-4bcb-8170-4b9ec9e29fbb%2522%252C%2522useMeetNow%2522%253Afalse%257D |
Um die App zu teilen und eine sofortige Besprechung zu initiieren, wenn useMeeetNow true ist. |
https://teams.microsoft.com/l/meeting-share?deeplinkId={deeplinkid}&fqdn={fqdn}}&lm=deeplink%22&appContext={encoded app context} |
https://teams.microsoft.com/l/meeting-share?deeplinkId={sampleid}&fqdn=teams.microsoft.com&lm=deeplink%22&appContext=%257B%2522appSharingUrl%2522%253A%2522https%253A%252F%252Fteams.microsoft.com%252Fextensibility-apps%252Fmeetingapis%252Fview%2522%252C%2522appId%2522%253A%25229cc80a93-1d41-4bcb-8170-4b9ec9e29fbb%2522%252C%2522useMeetNow%2522%253Atrue%257D |
Die Abfrageparameter sind:
-
deepLinkId
: Jeder Bezeichner, der für die Telemetriekorrelation verwendet wird. -
fqdn
:fqdn
ist ein optionaler Parameter, der verwendet werden kann, um zu einer geeigneten Umgebung einer Besprechung zu wechseln, um eine App auf der Bühne zu teilen. Es unterstützt Szenarien, in denen eine bestimmte App-Freigabe in einer bestimmten Umgebung erfolgt. Der Standardwert vonfqdn
ist unternehmens-URL, und mögliche Werte sindTeams.live.com
für Teams for Life,teams.microsoft.com
oderteams.microsoft.us
.
Hinweis
Damit Ihre App die Überprüfung bestehen kann, verwenden Sie beim Erstellen eines Deep-Links von Ihrer Website, Web-App oder adaptiven Karte die Option In Besprechung teilen als Zeichenfolge oder Kopie.
Sie können einen Deep-Link generieren, um die App zu teilen und eine Besprechung zu starten oder daran teilzunehmen.
Deep-Link zum Besprechungsseitenbereich
Sie können einen Deep-Link zum Besprechungsseitenbereich in einer Besprechung generieren. Verwenden Sie das folgende Format für einen Deep-Link zum Seitenbereich der Besprechung:
https://teams.microsoft.com/l/entity/<appId>/<entityId>?webUrl=<entityWebUrl>&label=<entityLabel>&context=<context>
.
Beispiel:
https://teams.microsoft.com/l/entity/fe4a8eba-2a31-4737-8e33-e5fae6fee194/tasklist123?webUrl=https://tasklist.example.com/123/456&label=Task 456&context={"chatId": "17:b42de192376346a7906a7dd5cb84b673@thread.v2","contextType":"chat"}
Standardmäßig wird ein Deep-Link in einem Besprechungsseitenbereich geöffnet. Um einen Deep Link direkt in einer App anstelle des Besprechungsseitenbereichs zu öffnen, fügen Sie im Deep Link-Format hinzu openInMeeting=false
:
https://teams.microsoft.com/l/entity/<appId>/<entityId>?webUrl=<entityWebUrl>&label=<entityLabel>&context=<context>&openInMeeting=false
Weitere Informationen finden Sie unter Deep-Link zu einer Registerkarte.
Deep Link wird in den folgenden Szenarien nicht im Besprechungsseitenbereich geöffnet:
- Es gibt keine aktive Besprechung.
- Für die App ist im App-Manifest kein
sidePanel
Kontext deklariert. -
openInMeeting
wird im Deep-Link auffalse
festgelegt. - Der Deep-Link wird außerhalb des Besprechungsfensters oder der Komponente ausgewählt.
- Der Deep-Link stimmt nicht mit der aktuellen Besprechung überein, z. B. mit einem Deep-Link, der in einer anderen Besprechung erstellt wurde.
Deep-Link zum Teilnehmen an einer Besprechung
Die Teams-App kann die URL für die Teilnahme an einer Besprechungs-URL über Graph-APIs lesen. Über diesen Deep-Link wird die Benutzeroberfläche für den Benutzer für die Teilnahme an der Besprechung angezeigt. Weitere Informationen finden Sie unter Abrufen onlineMeeting
und Abrufen von Besprechungsdetails.
Codebeispiel
Beispielname | Beschreibung | .NET | Node.js |
---|---|---|---|
Deep Link, der die Subentity-ID verwendet | In diesem Beispiel wird gezeigt, wie Sie einen Deep-Link aus einem Botchat zu einer Registerkarte verwenden, die die Subentity-ID verwendet. Außerdem werden Deep-Links für Folgendes angezeigt: – Navigieren zu einer App – Navigieren zu einem Chat – Dialogfeld "Profil öffnen" – Öffnen eines Planungsdialogfelds |
View | View |