Freigeben über


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:

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.

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:

Es wird zwar empfohlen, typisierte APIs von TeamsJS zu verwenden, es ist jedoch möglich, deep links zum integrierten Teams-Planungsdialogfeld manuell zu erstellen.

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 Entra UserPrincipalName, 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​​​​​​​​​​​​​​

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.

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:

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 Entra UserPrincipalName, 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.

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 */ }

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 useMeeetNowfalse 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 useMeeetNowtrue 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 von fqdn ist unternehmens-URL, und mögliche Werte sind Teams.live.com für Teams for Life, teams.microsoft.comoder teams.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.

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 auf false 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.

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