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.

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. Derzeit unterstützt das Feld „Benutzer-ID“ das Microsoft Azure Active Directory (Azure AD) UserPrincipalName, wie 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 Ihrer Karte an, oder tippen Sie über den Aktionstyp auf Aktion openUrl . Apps können auch die Teams Java Script-Bibliothek 2.0 verwenden, um dies zu erstellen, ohne den Deep Link manuell vorbereiten zu müssen. Im Folgenden finden Sie ein Beispiel für die Verwendung der Microsoft Teams JavaScript-Clientbibliothek (TeamsJS):

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.

Anwendungen können ein Besprechungsplanungsdialogfeld öffnen und Informationen wie Besprechungstitel und Teilnehmer bereitstellen. Es wird zwar empfohlen, die typisierten APIs von TeamsJS zu verwenden, Deep-Links zu dem in Microsoft Teams integrierten Planungsdialogfeld können aber auch manuell erstellt werden. Verwenden Sie das folgende Format für einen Deep-Link, den Sie in einem Bot, Connector oder einer Nachrichtenerweiterungskarte verwenden können:

https://teams.microsoft.com/l/meeting/new?subject=<meeting subject>&startTime=<date>&endTime=<date>&content=<content>&attendees=<user1>,<user2>,<user3>,...

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​​​​​​​​​​​​​​

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: Die optionale durch Kommas getrennte Liste der Benutzer-IDs, auf der die Teilnehmer der Besprechung angegeben sind. Der Benutzer, der die Aktion ausführt, ist der Besprechungsorganisator. Derzeit unterstützt das Feld "Benutzer-ID" nur azure AD UserPrincipalName, in der Regel eine E-Mail-Adresse.
  • startTime: Die optionale Startzeit des Ereignisses. Die Startzeit sollte im langen ISO 8601-Format vorliegen, z. B. 2018-03-12T23:55:25+02:00.
  • endTime: Die optionale Endzeit des Ereignisses, ebenfalls im ISO 8601-Format.
  • subject: Ein optionales Feld für den Betreff der Besprechung.
  • content: Ein optionales Feld für das Besprechungsdetails-Feld.

Hinweis

Derzeit wird die Angabe des Speicherorts nicht unterstützt. Sie müssen den UTC-Offset angeben, d. h. Zeitzonen, wenn Sie Ihre 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 Ihrer Karte oder als Tippaktion über den openUrl Aktionstyp angeben.

Anwendungen können auch die TeamsJS-Bibliothek 2.0 verwenden, um das Besprechungsplanungsdialogfeld zu öffnen, ohne den Link manuell vorbereiten zu müssen. Sehen Sie sich das folgende Codebeispiel an, das eine Notiz enthält:

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

Hinweis

Um das Planungsdialogfeld in Teams zu öffnen, müssen die Entwickler weiterhin die ursprüngliche Deep-Link-URL-basierte Methode verwenden, da Teams die Kalenderfunktion noch nicht unterstützt.

Weitere Informationen zum Arbeiten mit dem Kalender finden Sie in der API-Referenzdokumentation unter calendar-Namespace.

Anwendungen können einen Deep Link für Benutzer vorbereiten, um einen Einzel- oder Gruppenaudio- oder Videoanruf zu starten. Sie können nur Audio- oder Audio-Videoanrufe an einen einzelnen Benutzer oder eine Gruppe von Benutzern aufrufen, indem Sie den Anruftyp und die Teilnehmer angeben. Bevor der Anruf erfolgt, fordert der Microsoft Teams-Client eine Bestätigung für den Anruf an. Wenn ein Gruppenanruf erfolgt, können Sie eine Reihe von VoIP-Benutzern und eine Gruppe von PSTN-Benutzern mit demselben Deep Link-Aufruf anrufen.

In einem Videoanruf bittet der Client um Bestätigung und aktiviert das Video des Anrufers für den Anruf. 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.

Obwohl die Verwendung der typisierten APIs von TeamsJS empfohlen wird, können Sie auch einen manuell erstellten 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: Die durch Kommas getrennte Liste der Benutzer-IDs, die die Teilnehmer des Anrufs darstellen. Derzeit unterstützt das Feld "Benutzer-ID" azure AD UserPrincipalName, in der Regel eine E-Mail-Adresse, oder in einem PSTN-Anruf unterstützt es eine PSTN-Mri 4:<Phonenumber>.
  • withVideo: Dies ist 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.
  • Source: Dies ist ein optionaler Parameter, der über die Deep-Link-Quelle informiert.

Anwendungen können auch die TeamsJS-Bibliothek 2.0 verwenden, um Anrufe zu starten, ohne diese DeepLinks manuell vorbereiten zu müssen. Der folgende Code veranschaulicht die Verwendung der TeamsJS-Bibliothek 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 */ }

Sie können auch einen Deep-Link generieren, um die App zu teilen, um eine Besprechung zu starten oder zu starten.

Deep-Links zum Freigeben von Inhalten für die Staging finden Sie unter Deep-Link zum Freigeben von Inhalten für die Bühne in Besprechungen.

Hinweis

  • Derzeit ist das Generieren eines Deep-Links zum Freigeben von Inhalten in Besprechungen nur in der öffentlichen Entwicklervorschau verfügbar.
  • Deep-Link zum Freigeben von Inhalten für die Besprechung wird nur im Teams-Desktopclient unterstützt.

Die Anwendung kann über Graph-APIs an einer Besprechungs-URL teilnehmen. Über diesen Deep-Link wird die Benutzeroberfläche angezeigt, auf der der Benutzer an dieser Besprechung teilnehmen kann.