Besprechungs-Apps-APIs

Die Erweiterbarkeit von Besprechungen stellt APIs bereit, um die Besprechungserfahrung zu verbessern. Mit Hilfe der aufgeführten APIs können Sie Folgendes ausführen:

  • Erstellen Sie Apps oder integrieren Sie vorhandene Apps in den Meeting-Lebenszyklus.
  • Verwenden Sie APIs, um Ihre App auf Meetings aufmerksam zu machen.
  • Wählen Sie die erforderlichen APIs aus, um das Besprechungserlebnis zu verbessern.

Hinweis

Verwenden Sie die Microsoft Teams JavaScript-Clientbibliothek (TeamsJS) (Version: 1.10 und höher) für einmaliges Anmelden (Single Sign-On, SSO), um im Besprechungsseitenbereich zu arbeiten.

Die folgende Tabelle enthält eine Liste der APIs, die in der JavaScript-Bibliothek von Microsoft Teams und Microsoft Bot Framework SDKs verfügbar sind:

Methode Beschreibung Quelle
Benutzerkontext abrufen Rufen Sie Kontextinformationen ab, um relevante Inhalte auf einer Microsoft Teams-Registerkarte anzuzeigen. TeamsJS-Bibliothek
Teilnehmer abrufen Rufen Sie Teilnehmerinformationen nach Meeting-ID und Teilnehmer-ID ab. Microsoft Bot Framework SDK
Senden Sie eine Besprechungsbenachrichtigung Stellt Besprechungssignale mithilfe der vorhandenen Konversationsbenachrichtigungs-API für Benutzer-Bot-Chats bereit und ermöglicht es dem Bot, eine Benutzeraktion zu benachrichtigen, die eine Besprechungsbenachrichtigung anzeigt. Microsoft Bot Framework SDK
Besprechungsdetails abrufen Rufen Sie die statischen Metadaten eines Meetings ab. Microsoft Bot Framework SDK
Senden Sie Untertitel in Echtzeit Senden Sie Untertitel in Echtzeit an ein laufendes Meeting. TeamsJS-Bibliothek
Teilen Sie App-Inhalte auf der Bühne Teilen Sie bestimmte Teile der App für die Meeting-Phase aus dem Seitenbereich der App in einem Meeting. TeamsJS-Bibliothek
Empfangen von Teams-Besprechungsereignissen in Echtzeit Empfangen von Besprechungsereignissen in Echtzeit, z. B. Start und Ende der Besprechung oder Teilnahme an und Verlassen von Teilnehmern. Microsoft Bot Framework SDK
Abrufen des eingehenden Audiozustands Ermöglicht es einer App, die Einstellung für den eingehenden Audiozustand für den Besprechungsbenutzer abzurufen. TeamsJS-Bibliothek
Eingehende Audiowiedergabe umschalten Ermöglicht einer App das Umschalten der Einstellung für den eingehenden Audiozustand für den Besprechungsbenutzer von Stummschaltung zu Stummschaltung aufheben oder umgekehrt. TeamsJS-Bibliothek

Holen Sie sich die Benutzerkontext-API

Wichtig

  • Standardmäßig unterstützt der neue Teams-Client das helle Design für Apps in Teams-Besprechungen. Wenn die Eigenschaft in der app.theme getContext-API den Wert zurückgibt, weist der default Teams-Client ein helles Design auf.
  • Frühere Versionen von Teams-Clients unterstützen nur das Design "Dunkel" und "Kontrast" für Apps in Teams-Besprechungen.

Informationen zum Identifizieren und Abrufen von Kontextinformationen für Ihre Registerkarteninhalte finden Sie unter Abrufen von Kontext für Ihre Registerkarte "Teams". wird von einer meetingId Registerkarte verwendet, die im Besprechungskontext ausgeführt wird, und wird für die Antwortnutzlast hinzugefügt.

Beispiele

Im Folgenden finden Sie die TeamsJS v2-Antworten für get user context API basierend auf Besprechungstyp, Benutzertyp und Anruftyp:

  • Besprechungstyp

    Es folgt eine JSON-Nutzlastantwort für eine Kanalbesprechung für Mandantenbenutzer:

    {
        "app": {
        "locale": "en-us",
        "sessionId": "ff47ec00-e6a7-4dc1-a6ae-f44110f50c94",
        "theme": "default",
        "iconPositionVertical": 0,
        "osLocaleInfo": {
          "platform": "windows",
          "regionalFormat": "en-in",
          "shortDate": "dd-MM-yyyy",
          "longDate": "dd MMMM yyyy",
          "shortTime": "HH:mm",
          "longTime": "HH:mm:ss"
        },
        "parentMessageId": "1678109354022",
        "userClickTime": 1678109521159,
        "userFileOpenPreference": "inline",
        "host": {
          "name": "Teams",
          "clientType": "desktop",
          "sessionId": "c3c3c0a0-f7a1-b070-6b89-c8cd1f380042",
          "ringId": "ring1"
        },
        "appLaunchId": "7346ae66-5cac-47f9-8a0d-1228dac474cb"
        },
        "page": {
        "id": "Test",
        "frameContext": "sidePanel",
        "subPageId": "",
            "isFullScreen": false,
            "isMultiWindow": true,
            "sourceOrigin": ""
           },
           "user": {
            "id": "57efa5f3-273c-47e2-a871-4879e5d849cf",
            "displayName": "",
            "isCallingAllowed": undefined,
            "isPSTNCallingAllowed": undefined,
            "licenseType": "Unknown",
            "loginHint": "v-prkamble@microsoft.com",
            "userPrincipalName": "v-prkamble@microsoft.com",
            "tenant": {
             "id": "72f988bf-86f1-41af-91ab-2d7cd011db47",
             "teamsSku": "enterprise"
            }
           },
           "channel": {
            "id": "19:49683807ffce4318ad6d6d7a24dbde45@thread.tacv2",
            "displayName": undefined,
            "relativeUrl": undefined,
            "membershipType": undefined,
            "defaultOneNoteSectionId": undefined,
            "ownerGroupId": undefined,
            "ownerTenantId": undefined
           },
           "chat": {
            "id": "19:49683807ffce4318ad6d6d7a24dbde45@thread.tacv2"
           },
           "meeting": {
            "id": "MCMxOTo0OTY4MzgwN2ZmY2U0MzE4YWQ2ZDZkN2EyNGRiZGU0NUB0aHJlYWQudGFjdjIjMTY3ODEwOTM1NDAyMg=="
           },
           "sharepoint": undefined,
           "team": {
            "internalId": "19:b34aeec3f8e54240a5c283e86bfc4878@thread.tacv2",
            "displayName": undefined,
            "type": undefined,
            "groupId": undefined,
            "templateId": undefined,
            "isArchived": undefined,
            "userRole": 1
           },
           "sharePointSite": {
            "teamSiteUrl": "",
            "teamSiteDomain": "microsoft.sharepoint.com",
            "teamSitePath": "",
            "teamSiteId": "",
            "mySitePath": undefined,
            "mySiteDomain": undefined
           }
          }
    
  • Benutzertyp

    Es folgt eine JSON-Nutzlastantwort in einer geplanten privaten Besprechung für einen Gastbenutzer:

      {
            "app": {
             "locale": "en-us",
             "sessionId": "268beeb4-a52d-4ba8-b1c8-8b9f0b9b3492",
             "theme": "default",
             "iconPositionVertical": 23,
             "osLocaleInfo": {
              "platform": "windows",
              "regionalFormat": "en-in",
              "longDate": "dd MMMM yyyy",
              "shortDate": "dd-MM-yyyy",
              "longTime": "HH:mm:ss",
              "shortTime": "HH:mm"
             },
             "parentMessageId": "",
             "userClickTime": 1678023265131,
             "userFileOpenPreference": "inline",
             "host": {
              "name": "Teams",
              "clientType": "desktop",
              "sessionId": "967c980b-1e41-a2cd-eac0-a4bff8f73ce7",
              "ringId": "ring1"
             },
             "appLaunchId": "c35c4496-f28c-4107-8e6c-2dba09fb881a"
            },
            "page": {
             "id": "Test",
             "frameContext": "content",
             "subPageId": "",
             "isFullScreen": false,
             "isMultiWindow": false,
             "sourceOrigin": NULL
            },
            "user": {
             "id": "57efa5f3-273c-47e2-a871-4879e5d849cf",
             "displayName": undefined,
             "isCallingAllowed": undefined,
             "isPSTNCallingAllowed": undefined,
             "licenseType": "Unknown",
             "loginHint": "v-prkamble@microsoft.com",
             "userPrincipalName": "v-prkamble@microsoft.com",
             "tenant": {
              "id": "72f988bf-86f1-41af-91ab-2d7cd011db47",
              "teamsSku": "enterprise"
             }
            },
            "channel": undefined,
            "chat": {
             "id": "19:meeting_YmU5NWM3NGEtZjMyMi00ZDg4LTk4OGUtMjUzMGJkZjRhMDhm@thread.v2"
            },
            "meeting": {
             "id": "MCMxOTptZWV0aW5nX1ltVTVOV00zTkdFdFpqTXlNaTAwWkRnNExUazRPR1V0TWpVek1HSmtaalJoTURobUB0aHJlYWQudjIjMA=="
            },
            "sharepoint": undefined,
            "team": undefined,
            "sharePointSite": {
             "teamSiteUrl": "",
             "teamSiteDomain": "microsoft.sharepoint.com",
             "teamSitePath": "",
             "teamSiteId": undefined,
             "mySitePath": "/personal/v-prkamble_microsoft_com",
             "mySiteDomain": "microsoft-my.sharepoint.com"
            }
      }
    
    
  • Anruftyp

    Es folgt eine JSON-Nutzlastantwort für einen 1:1-Aufruf für einen Mandantenbenutzer:

          {
           "app": {
            "locale": "en-us",
            "sessionId": "1b3dc47e-f6ae-4fe2-8ed6-844a505f3186",
            "theme": "dark",
            "iconPositionVertical": null,
            "osLocaleInfo": {
             "platform": "windows",
             "regionalFormat": "en-in",
             "shortDate": "dd-MM-yyyy",
             "longDate": "dd MMMM yyyy",
             "shortTime": "HH:mm",
             "longTime": "HH:mm:ss"
            },
            "parentMessageId": "",
            "userClickTime": 1678088052473,
            "userFileOpenPreference": undefined,
            "host": {
             "name": "Teams",
             "clientType": "desktop",
             "sessionId": "",
             "ringId": "general"
            },
            "appLaunchId": undefined
           },
           "page": {
            "id": "Test",
            "frameContext": "sidePanel",
            "subPageId": "",
            "isFullScreen": undefined,
            "isMultiWindow": true,
            "sourceOrigin": ""
           },
           "user": {
            "id": "e652dd92-dd63-4fcc-b5b2-2005681e8e9f",
            "displayName": undefined,
            "isCallingAllowed": undefined,
            "isPSTNCallingAllowed": undefined,
            "licenseType": "Unknown",
            "loginHint": "admin@M365x94626565.onmicrosoft.com",
            "userPrincipalName": "admin@M365x94626565.onmicrosoft.com",
            "tenant": {
             "id": "aa923623-ae61-49ee-b401-81f414b6ad5a",
             "teamsSku": "unknown"
            }
           },
           "channel": undefined,
           "chat": {
            "id": "19:a74d8489-4455-4670-9581-7b38a8017c58_e652dd92-dd63-4fcc-b5b2-2005681e8e9f@unq.gbl.spaces"
           },
           "meeting": {
            "id": "MCMxOTphNzRkODQ4OS00NDU1LTQ2NzAtOTU4MS03YjM4YTgwMTdjNThfZTY1MmRkOTItZGQ2My00ZmNjLWI1YjItMjAwNTY4MWU4ZTlmQHVucS5nYmwuc3BhY2VzIzA="
           },
           "sharepoint": undefined,
           "team": undefined,
           "sharePointSite": {
            "teamSiteUrl": undefined,
            "teamSiteDomain": "m365x94626565.sharepoint.com",
            "teamSitePath": undefined,
            "teamSiteId": undefined,
            "mySitePath": undefined,
            "mySiteDomain": undefined
           }
          }
    
    

Teilnehmer-API abrufen

Die GetParticipant API muss über eine Bot-Registrierung und -ID verfügen, um Authentifizierungstoken zu generieren. Weitere Informationen finden Sie unter Bot-Registrierung und -ID.

Hinweis

  • Der Benutzertyp ist nicht in der getParticipantRole-API enthalten.
  • Teilnehmerrollen nicht zwischenspeichern, da der Besprechungsorganisator die Rollen jederzeit ändern kann.
  • Derzeit wird die GetParticipant API nur für Verteilerlisten oder Dienstpläne mit weniger als 350 Teilnehmern unterstützt.

Abfrageparameter

Tipp

Rufen Sie Teilnehmer-IDs und Mandanten-IDs auf der Registerkarte SSO-Authentifizierung ab.

Die Meeting API muss meetingId, participantId und als URL-Parameter tenantId haben. Die Parameter sind als Teil der Microsoft Teams JavaScript-Clientbibliothek (TeamsJS)-Bibliothek und bot-Aktivität verfügbar.

Die folgende Tabelle enthält die Abfrageparameter:

Wert Typ Erforderlich Beschreibung
meetingId Zeichenfolge Ja Der Besprechungsbezeichner ist über bot invoke und teamsJS library verfügbar.
participantId Zeichenfolge Ja Die Teilnehmer-ID ist die Benutzer-ID. Sie ist in der Tab-SSO-, Bot Invoke- und TeamsJS-Bibliothek verfügbar. Es wird empfohlen, eine Teilnehmer-ID vom Tab SSO zu erhalten.
tenantId Zeichenfolge Ja Die Mandanten-ID ist für die Mandantenbenutzer erforderlich. Sie ist in der Tab-SSO-, Bot Invoke- und TeamsJS-Bibliothek verfügbar. Es wird empfohlen, eine Mandanten-ID von Tab SSO zu erhalten.

Beispiel

protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
  // Gets the details for the given meeting participant. 
  // This only works in Teams meeting scoped conversations.
  TeamsMeetingParticipant participant = await TeamsInfo.GetMeetingParticipantAsync(turnContext, "yourMeetingId", "yourParticipantId", "yourParticipantTenantId").ConfigureAwait(false);
  TeamsChannelAccount member = participant.User;
  MeetingParticipantInfo meetingInfo = participant.Meeting;
  ConversationAccount conversation = participant.Conversation;

  // Sends a message activity to the sender of the incoming activity. 
  await turnContext.SendActivityAsync(MessageFactory.Text($"The participant role is: {meetingInfo.Role}"), cancellationToken);
}
Eigenschaftenname Beschreibung
user.id ID des Benutzers.
user.aadObjectId Microsoft Entra Objekt-ID des Benutzers.
user.name Der Name des Benutzers.
user.givenName Vorname des Benutzers.
user.surname Nachname des Benutzers.
user.email E-Mail-ID des Benutzers.
user.userPrincipalName UPN des Benutzers.
user.tenantId Microsoft Entra Mandanten-ID.
user.userRole Rolle des Benutzers. Beispiel: "admin" oder "user".
meeting.role Die Rolle des Teilnehmers in der Besprechung. Beispiel: "Organizer" oder "Presenter" oder "Attendee".
meeting.inMeeting Der Wert, der angibt, ob der Teilnehmer an der Besprechung teilnimmt.
conversation.id Die Chat-ID der Besprechung.
conversation.isGroup Boolescher Wert, der angibt, ob die Unterhaltung mehr als zwei Teilnehmer hat.

Antwortcodes

Die folgende Tabelle enthält die Antwortcodes:

Antwortcode Beschreibung
403 Get-Teilnehmerinformationen werden nicht mit der App geteilt. Wenn die App nicht im Meeting installiert ist, löst sie die Fehlerantwort 403 aus. Wenn der Mandantenadministrator die App während der Live-Site-Migration deaktiviert oder blockiert, wird die Fehlerantwort 403 ausgelöst.
200 Die Teilnehmerinformationen wurden erfolgreich abgerufen.
401 Die App antwortet mit einem ungültigen Token.
404 Die Besprechung ist entweder abgelaufen, oder die Teilnehmer sind nicht verfügbar.

Senden Sie eine Besprechungsbenachrichtigung

Alle Benutzer in einem Meeting erhalten die Benachrichtigungen, die über die Nutzlast für Benachrichtigungen im Meeting gesendet werden. Die Payload „In-Meeting-Benachrichtigung“ löst eine In-Meeting-Benachrichtigung aus und ermöglicht es Ihnen, Meeting-Signale bereitzustellen, die mithilfe der vorhandenen Konversationsbenachrichtigungs-API für Benutzer-Bot-Chat bereitgestellt werden. Sie können eine Meeting-Benachrichtigung basierend auf einer Benutzeraktion senden. Die Nutzlast ist über Bot Services verfügbar.

Sie können auch gezielte Besprechungsbenachrichtigungen an einen bestimmten Teilnehmer an einer Besprechung senden. Weitere Informationen finden Sie unter Gezielte Benachrichtigungen in Besprechungen.

Hinweis

  • Wenn eine Meeting-Benachrichtigung aufgerufen wird, wird der Inhalt als Chat-Nachricht präsentiert.
  • Sie müssen die Funktion submitTask() aufrufen, damit sie automatisch geschlossen wird, nachdem ein Benutzer eine Aktion in der Webansicht ausgeführt hat. Dies ist eine Voraussetzung für die App-Übermittlung. Weitere Informationen finden Sie unter Teams SDK-Aufgabenmodul.
  • Wenn Sie möchten, dass Ihre App anonyme Benutzer unterstützt, muss sich die Nutzlast der anfänglichen Aufrufanforderung auf from.id Anforderungsmetadaten im from Objekt und nicht auf from.aadObjectId Anforderungsmetadaten stützen. from.idist die Benutzer-ID und from.aadObjectId ist die Microsoft Entra ID des Benutzers. Weitere Informationen finden Sie unter Aufgabenmodule in Registerkarten verwenden und Aufgabenmodul erstellen und senden.

Abfrageparameter

Die folgende Tabelle enthält den Abfrageparameter:

Wert Typ Erforderlich Beschreibung
conversationId Zeichenfolge Ja Die Konversations-ID ist als Teil von Bot Invoke verfügbar.

Beispiele

Bot ID wird im Manifest deklariert, und der Bot empfängt ein Ergebnisobjekt.

Hinweis

  • Der completionBotId Parameter von externalResourceUrl ist im angeforderten Payload-Beispiel optional.
  • Die externalResourceUrl Breiten- und Höhenparameter müssen in Pixel angegeben werden. Weitere Informationen finden Sie unter Designrichtlinien.
  • Die URL ist die Seite, die wie in <iframe> der Besprechungsbenachrichtigung geladen wird. Die Domäne muss sich im validDomains Array der Apps in Ihrem App-Manifest befinden.
// Specifies the type of text data in a message attachment.
Activity activity = MessageFactory.Text("This is a meeting signal test");

// Configures the current activity to generate a notification within Teams.
activity.TeamsNotifyUser(true, "https://teams.microsoft.com/l/bubble/APP_ID?url=<url>&height=<height>&width=<width>&title=<title>&completionBotId=BOT_APP_ID");

// Sends a message activity to the sender of the incoming activity. 
await turnContext.SendActivityAsync(activity).ConfigureAwait(false);
Eigenschaftenname Beschreibung
type Aktivitätstyp.
text Der Textinhalt der Nachricht.
summary Der Zusammenfassungstext der Nachricht.
channelData.notification.alertInMeeting Boolescher Wert, der angibt, ob dem Benutzer während einer Besprechung eine Benachrichtigung angezeigt werden soll.
channelData.notification.externalResourceUrl Der Wert der externen Ressourcen-URL der Benachrichtigung.
replyToId Die ID der übergeordneten oder Stammnachricht des Threads.
APP_ID Im Manifest deklarierte App-ID.
completionBotId Bot-App-ID.

Antwortcodes

Die folgende Tabelle hat die Antwortcodes:

Antwortcode Beschreibung
201 Die Aktivität mit Signal wurde erfolgreich gesendet.
401 Die App antwortet mit einem ungültigen Token.
403 Die App kann das Signal nicht senden. Der Antwortcode 403 kann aus verschiedenen Gründen auftreten, z. B. wenn der Mandantenadministrator die App während der Live-Site-Migration deaktiviert und blockiert. In diesem Fall enthält die Payload eine detaillierte Fehlermeldung.
404 Der Meeting-Chat existiert nicht.

Zielbesprechungs-Benachrichtigung und App-Symbol-API

Die targetedMeetingNotification API ermöglicht apps das Senden gezielter Benachrichtigungen in Besprechungen und zeigt app icon badging an bestimmte Teilnehmer an einer Besprechung an. Apps senden gezielte Besprechungsbenachrichtigungen und App-Symbol-Badging basierend auf der Benutzeraktion. Die API ist über die Bot-API verfügbar.

Voraussetzungen

Sie müssen Ihr App-Manifest mit RSC-Berechtigungen unter der webApplicationInfo -Eigenschaft konfigurieren, um gezielte Benachrichtigungen in Besprechungen zu senden und das App-Symbol an bestimmte Teilnehmer einer Besprechung zu senden. Verwenden Sie die folgenden Beispiele, um Ihr Manifest zu konfigurieren:


Für App-Manifestversion 1.12 und höher
"webApplicationInfo": {
    "id": "<<MICROSOFT-APP-ID>>",
    "resource": "https://RscBasedStoreApp"  },
  "authorization": {
    "permissions": {
      "resourceSpecific": [
            {
                "name": "OnlineMeetingNotification.Send.Chat",
                "type": "Application"
            }
        ]    
    }
}


Für App-Manifestversion 1.11 und früher
"webApplicationInfo": {
    "id": "<<MICROSOFT-APP-ID>>",
    "resource": "https://RscBasedStoreApp",
    "applicationPermissions": [
      "OnlineMeetingNotification.Send.Chat"
    ]
}

Hinweis

  • Die API-Nutzlast lässt nur einen Dialog mit einer URL zu.
  • Die Benutzer-ID-Formate aadObjectid und UPN werden nicht unterstützt.

Rufen Sie das unterstützte Benutzer-ID-Format für gezielte Benachrichtigungen in besprechungsinternen Und App-Symbolen ab:

Beispiel

Im Folgenden ist ein Beispiel für anforderungsnutzlast für gezielte Benachrichtigungen in besprechungsinternen Benachrichtigungen und App-Symbol badging aufgeführt:

POST /v1/meetings/{meetingId}/notification
{

  "type": "targetedMeetingNotification",
  "value": {
    "recipients": [ 
"29:1I12M_iy2wTa97T6LbjTh4rJCWrtw2PZ3lxpD3yFv8j2YPnweY2lpCPPAn3RI0PP7rghfHauUz48I1t7ANhj4CA"
     ], 
    "surfaces": [ 
      { 
        "surface": "meetingStage", 
        "contentType": "task", 
        "content": { 
          "value": { 
            "height": "300", 
            "width": "400", 
            "title": "Targeted meeting Notification", 
            "url": "https://somevalidurl.com"           
}
        } 
      } 
    ] 
  },
  "channelData": { // optional if a developer doesn't want to support user attributes.
    "onBehalfOf": [ 
      { 
        "itemid": 0, 
        "mentionType": "person", 
        "mri": "29:1mDOCfGM9825lMHlwP8NjIVMJeQAbN-ojYBT5VzQfPpnst1IFQeYB1QXC8Zupn2RhgfLIW27HmynQk-4bdx_YhA", 
        "displayName": "yunny chung"      } 
    ] 
  }
}
Eigenschaftenname Beschreibung
meetingId Die Besprechungs-ID ist über den Botaufruf und die TeamsJS-Bibliothek verfügbar.
type targetedMeetingNotification
recipients Liste der Benutzer-IDs. Abrufen von Benutzer-IDs für Besprechungsteilnehmer über die Get-Teilnehmer-API. Rufen Sie die gesamte Liste der Chatlisten mithilfe der API zum Abrufen von Mitgliedern ab. Leere oder NULL-Empfängerliste gibt 400 zurück.
surface Ein Oberflächentyp. Die unterstützten Oberflächentypen sind meetingStage und meetingTabIcon.
surfaces Liste der Oberflächen, auf denen Benachrichtigungen gerendert werden können.
contentType Der Typ des Inhalts, der von der Benachrichtigung für die Zielbesprechung gerendert wird. Der unterstützte Wert ist task.
content TaskModuleContinueResponse
content.value.height Optional; angeforderte Höhe der Benachrichtigung.
content.value.width Optional; angeforderte Breite der Benachrichtigung.
content.value.title Optional; Titel der Benachrichtigung.
content.value.url Optional; URL, die in der Benachrichtigung gerendert werden soll. Stellen Sie sicher, dass die URL Teil von validDomains im App-Manifest ist. Wenn eine leere Zeichenfolge oder keine URL angegeben wird, wird in einer Besprechungsbenachrichtigung nichts gerendert.
ChannelData.OnBehalfOf Optional; Dies dient zur Unterstützung von Benutzerattributen.
onBehalfOf.itemid Beschreibt die Identifizierung des Elements. Sein Wert muss 0 sein.
onBehalfOf.mentionType personSchlüsselwort (keyword). Beschreibt die Erwähnung einer Person.
onBehalfOf.mri Benutzer-MRT als Absender angezeigt.
onBehalfOf.displayName Optional; Name von person. Wird als Fallback verwendet, falls die Namensauflösung nicht verfügbar ist.

Hinweis

Wenn Sie eine ungültige Eingabe angeben, gibt die API den status Code 400 zurück.

Antwortcode

Die folgende Tabelle hat die Antwortcodes:

Antwortcode Beschreibung
202 Die Benachrichtigung wurde erfolgreich gesendet.
207 Benachrichtigungen werden nur an wenige Teilnehmer gesendet.
400 Fehler bei der Überprüfung der Nutzlast der Besprechungsbenachrichtigungsanforderung.
401 Das Bottoken ist ungültig.
403 Der Bot darf die Benachrichtigung nicht senden.
404 Der Besprechungschat wurde nicht gefunden, oder keiner der Teilnehmer wurde in der Liste gefunden.

Rufen Sie die Besprechungsdetails-API ab

Mit der API für Besprechungsdetails kann Ihre App die statischen Metadaten einer Besprechung abrufen. Die Metadaten stellen Datenpunkte bereit, die sich nicht dynamisch ändern. Die API ist über Bot Services verfügbar. Derzeit unterstützen sowohl private geplante oder wiederkehrende Meetings als auch geplante oder wiederkehrende Channel-Meetings APIs mit jeweils unterschiedlichen RSC-Berechtigungen.

Die Besprechungsdetails-API muss über eine Botregistrierung und bot-ID verfügen. Es erfordert das Bot SDK, um es zu erhalten TurnContext. Um die API für Besprechungsdetails verwenden zu können, müssen Sie je nach Umfang einer Besprechung unterschiedliche RSC-Berechtigungen erhalten, z. B. private Besprechungen oder Kanalbesprechung.

Hinweis

Die Besprechungsdetails-API wird für geplante private Besprechungen, geplante Kanalbesprechungen, sofortige Besprechungen (Jetzt besprechen), Einzelanrufe und Gruppenanrufe in Teams-Desktop- und mobilen Clients unterstützt.

Voraussetzungen

Um die API für Besprechungsdetails verwenden zu können, müssen Sie je nach Umfang einer Besprechung unterschiedliche RSC-Berechtigungen erhalten, z. B. private Besprechungen oder Kanalbesprechung.


Für App-Manifestversion 1.12 und höher

Verwenden Sie das folgende Beispiel, um die Eigenschaften und authorization Ihres App-Manifests webApplicationInfo für jede private Besprechung zu konfigurieren:

"webApplicationInfo": {
    "id": "<bot id>",
    "resource": "https://RscPermission",
},
"authorization": {
    "permissions": {
        "resourceSpecific": [
            {
                "name": "OnlineMeeting.ReadBasic.Chat",
                "type": "Application"
            }
        ]
    }
}

Verwenden Sie das folgende Beispiel, um die Manifeste webApplicationInfo und authorization Eigenschaften Ihrer App für ein beliebiges Kanalmeeting zu konfigurieren:

"webApplicationInfo": {
    "id": "<bot id>",
    "resource": "https://RscPermission",
},
"authorization": {
    "permissions": {
        "resourceSpecific": [
            {
                "name": "ChannelMeeting.ReadBasic.Group",
                "type": "Application"
            }
        ]
    }
}


Für App-Manifestversion 1.11 und früher

Verwenden Sie das folgende Beispiel, um die webApplicationInfo Eigenschaft Ihres App-Manifests für ein privates Meeting zu konfigurieren:

"webApplicationInfo": {
    "id": "<bot id>",
    "resource": "https://RscPermission",
    "applicationPermissions": [
      "OnlineMeeting.ReadBasic.Chat"
    ]
}

Verwenden Sie das folgende Beispiel, um die webApplicationInfo Eigenschaft Ihres App-Manifests für ein beliebiges Kanalmeeting zu konfigurieren:

"webApplicationInfo": {
    "id": "<bot id>",
    "resource": "https://RscPermission",
    "applicationPermissions": [
      "ChannelMeeting.ReadBasic.Group"
    ]
}

Hinweis

  • Wenn die ChannelMeeting.ReadBasic.Group Berechtigung dem Manifest hinzugefügt wird, empfängt der Bot die Start- oder Endereignisse der Besprechung automatisch von den Kanalbesprechungen, die in allen Teams erstellt wurden, in denen der Bot hinzugefügt wird.
  • Bei einem Einzelanruf organizer ist der Initiator des Chats und bei Gruppenanrufen organizer der Anrufinitiator. Bei Besprechungen organizer im öffentlichen Kanal ist die Person, die den Kanalbeitrag erstellt hat.

Abfrageparameter

Die folgende Tabelle listet die Abfrageparameter auf:

Wert Typ Erforderlich Beschreibung
meetingId Zeichenfolge Ja Der Besprechungsbezeichner ist über Bot Invoke und die TeamsJS-Bibliothek verfügbar.

Beispiel

// Gets the information for the given meeting id.
MeetingInfo result = await TeamsInfo.GetMeetingInfoAsync(turnContext);

// Sends a message activity to the sender of the incoming activity. 
await turnContext.SendActivityAsync(JsonConvert.SerializeObject(result));
Eigenschaftenname Beschreibung
details.id Die ID der Besprechung, codiert als BASE64-Zeichenfolge.
details.msGraphResourceId Die MsGraphResourceId, die speziell für MS Graph-API-Aufrufe verwendet wird.
details.scheduledStartTime Die geplante Startzeit der Besprechung in UTC.
details.scheduledEndTime Die geplante Endzeit der Besprechung in UTC.
details.joinUrl Die URL, die für die Teilnahme an der Besprechung verwendet wird.
details.title Der Titel der Besprechung.
details.type Der Typ der Besprechung (OneToOneCall, GroupCall, Scheduled, Recurring, MeetNow, ChannelScheduled und ChannelRecurring).
conversation.isGroup Boolescher Wert, der angibt, ob die Unterhaltung mehr als zwei Teilnehmer hat.
conversation.conversationType Der Konversationstyp.
conversation.id Die Chat-ID der Besprechung.
organizer.id Die Benutzer-ID des Organisators.
organizer.aadObjectId Die Microsoft Entra Objekt-ID des Organisators.
organizer.tenantId Die Microsoft Entra Mandanten-ID des Organisators.

Bei besprechungsserienartigem Typ:

startDate: Gibt das Datum an, an dem mit der Anwendung des Musters begonnen werden soll. Der Wert von startDate muss dem Datumswert der start-Eigenschaft für die Ereignisressource entsprechen. Das erste Vorkommen der Besprechung tritt an diesem Datum möglicherweise nicht auf, wenn es nicht zum Muster passt.

endDate: Gibt das Datum an, an dem die Anwendung des Musters beendet werden soll. Das letzte Vorkommen der Besprechung findet an diesem Datum möglicherweise nicht statt, wenn es nicht zum Muster passt.

API zum Senden von Beschriftungen in Echtzeit

Die API zum Senden von Beschriftungen in Echtzeit macht einen POST-Endpunkt für Teams-Cart-Untertitel (Communication Access Real-Time Translation, Echtzeitübersetzung) verfügbar, also von Menschen typisierte Untertitel. An diesen Endpunkt gesendeter Textinhalt wird endbenutzern in einer Teams-Besprechung angezeigt, wenn für sie Untertitel aktiviert sind.

CART-URL

Sie können die CART-URL für den POST-Endpunkt auf der Seite Besprechungsoptionen in einer Teams-Besprechung abrufen. Weitere Informationen finden Sie unter CART-Beschriftungen in einer Microsoft Teams Besprechung. Sie müssen die CART-URL nicht ändern, um CART-Beschriftungen zu verwenden.

Abfrageparameter

Die CART-URL enthält die folgenden Abfrageparameter:

Wert Typ Erforderlich Beschreibung
meetingId Zeichenfolge Ja Der Besprechungsbezeichner ist über Bot Invoke und die TeamsJS-Bibliothek verfügbar.
Beispiel: meetingid=%7b%22tId%22%3a%2272f234bf-86f1-41af-91ab-2d7cd0321b47%22%2c%22oId%22%3a%22e071f268-4241-47f8-8cf3-fc6b84437f23%22%2c%22thId%22%3a%2219%3ameeting_NzJiMjNkMGQtYzk3NS00ZDI1LWJjN2QtMDgyODVhZmI3NzJj%40thread.v2%22%2c%22mId%22%3a%220%22%7d
token Zeichenfolge Ja Autorisierungstoken.
Beispiel: token=04751eac

Beispiel

https://api.captions.office.microsoft.com/cartcaption?meetingid=%7b%22tId%22%3a%2272f234bf-86f1-41af-91ab-2d7cd0321b47%22%2c%22oId%22%3a%22e071f268-4241-47f8-8cf3-fc6b84437f23%22%2c%22thId%22%3a%2219%3ameeting_NzJiMjNkMGQtYzk3NS00ZDI1LWJjN2QtMDgyODVhZmI3NzJj%40thread.v2%22%2c%22mId%22%3a%220%22%7d&token=gjs44ra

Methode

Ressource Methode Beschreibung
/cartcaption POST Behandeln Sie Beschriftungen für das Meeting, das gestartet wurde

Hinweis

Stellen Sie sicher, dass der Inhaltstyp für alle Anforderungen Klartext mit UTF-8-Codierung ist. Der Anfragetext enthält nur Bildunterschriften.

Beispiel

POST /cartcaption?meetingid=04751eac-30e6-47d9-9c3f-0b4ebe8e30d9&token=04751eac&lang=en-us HTTP/1.1
Host: api.captions.office.microsoft.com
Content-Type: text/plain
Content-Length: 22
Hello I’m Cortana, welcome to my meeting. 

Hinweis

Jede POST-Anforderung generiert eine neue Zeile mit Untertiteln. Um sicherzustellen, dass der Endbenutzer genügend Zeit hat, den Inhalt zu lesen, begrenzen Sie jeden POST-Anforderungstext auf 80–120 Zeichen.

Fehlercodes

Die folgende Tabelle enthält die Fehlercodes:

Fehlercode Beschreibung
400 Ungültige Anforderung. Der Antworttext enthält weitere Informationen. Beispielsweise werden nicht alle erforderlichen Parameter dargestellt.
401 Unbefugt. Ungültiges oder abgelaufenes Token. Wenn Sie diesen Fehler erhalten, generieren Sie eine neue WARENKORB-URL in Teams.
404 Besprechung nicht gefunden oder nicht gestartet. Wenn Sie diese Fehlermeldung erhalten, stellen Sie sicher, dass Sie das Meeting starten und Startuntertitel auswählen. Nachdem Untertitel im Meeting aktiviert wurden, können Sie damit beginnen, Untertitel in das Meeting zu posten.
500 Internal server error. (Interner Serverfehler) Wenden Sie sich für weitere Informationen an den Support oder geben Sie Feedback.

Empfangen von Teams-Besprechungsereignissen in Echtzeit

Sie können Besprechungsereignisse in Echtzeit empfangen, z. B. Start und Ende der Besprechung oder Teilnehmerbeitritts- und Austrittsereignisse.

Empfangen von Start- und Endereignissen für Besprechungen

Hinweis

Start- und Endereignisse von Besprechungen werden für geplante Besprechungen und Kanalbesprechungen unterstützt.

Der Benutzer kann Meeting-Ereignisse in Echtzeit empfangen. Sobald eine App mit einem Meeting verknüpft ist, werden die tatsächliche Start- und Endzeit des Meetings mit dem Bot geteilt. Die tatsächliche Start- und Endzeit eines Meetings unterscheidet sich von der geplanten Start- und Endzeit. Die API für Besprechungsdetails stellt die geplante Start- und Endzeit bereit. Das Ereignis gibt die tatsächliche Start- und Endzeit an.

Wenn die ChannelMeeting.ReadBasic.Group Berechtigungen und OnlineMeeting.ReadBasic.Chat im Manifest hinzugefügt werden, empfängt der Bot automatisch die Start- oder Endereignisse der Besprechung für die geplanten Besprechungstypen und Kanalbesprechungen.

Voraussetzungen

Ihr App-Manifest muss über die webApplicationInfo Eigenschaft verfügen, die Start- und Endereignisse des Meetings zu empfangen. Verwenden Sie die folgenden Beispiele, um Ihr Manifest zu konfigurieren:


Für App-Manifestversion 1.12 und höher
"webApplicationInfo": {
    "id": "<bot id>",
    "resource": "https://RscPermission",
    },
"authorization": {
    "permissions": {
        "resourceSpecific": [
            {
                "name": "OnlineMeeting.ReadBasic.Chat",
                "type": "Application"
            }
            {
                "name": "ChannelMeeting.ReadBasic.Group",
                "type": "Application"
            }
        ]    
    }
}


Für App-Manifestversion 1.11 und früher
"webApplicationInfo": {
    "id": "<bot id>",
    "resource": "https://RscPermission",
    "applicationPermissions": [
      "OnlineMeeting.ReadBasic.Chat",
      "ChannelMeeting.ReadBasic.Group"
    ]
}

Beispiel für das Abrufen von Start- oder Endereignissen für Besprechungen

Der Bot empfängt die Besprechungsstart- und Besprechungsendeereignisse über die OnTeamsMeetingStartAsync Handler und OnTeamsMeetingEndAsync . Die Informationen im Zusammenhang mit dem Besprechungsereignis sind Teil des MeetingStartEventDetails -Objekts, das die Metadatenfelder wie , meetingType, title, idjoinUrl, startTimeund EndTimeenthält.

Hinweis

  • Besprechungs-ID abrufen von turnContext.ChannelData.
  • Konversations-ID nicht als Besprechungs-ID verwenden.
  • Verwenden Sie keine Besprechungs-ID aus der Nutzlast der Besprechungsereignisse turncontext.activity.value.

Die folgenden Beispiele zeigen, wie Die Start- und Endereignisse der Besprechung erfasst werden:

Meeting-Startereignis

// Invoked when a Teams Meeting Start event activity is received from the connector.
protected override async Task OnTeamsMeetingStartAsync(MeetingStartEventDetails meeting, ITurnContext<IEventActivity> turnContext, CancellationToken cancellationToken)
{
    // Sends a message activity to the sender of the incoming activity. 
    await turnContext.SendActivityAsync(JsonConvert.SerializeObject(meeting));
}

Meeting-Ende-Ereignis

// Invoked when a Teams Meeting End event activity is received from the connector.
protected override async Task OnTeamsMeetingEndAsync(MeetingEndEventDetails meeting, ITurnContext<IEventActivity> turnContext, CancellationToken cancellationToken)
{
    // Sends a message activity to the sender of the incoming activity.
    await turnContext.SendActivityAsync(JsonConvert.SerializeObject(meeting));
}

Beispiel für die Nutzlast eines Besprechungsstartereignisses

Der folgende Code stellt ein Beispiel für die Nutzlast eines Besprechungsstartereignisses bereit:

{
  "name": " application/vnd.microsoft.meetingStart",
  "type": "event",
  "timestamp": "2023-02-23T19:34:07.478Z",
  "localTimestamp": "2023-02-23T11:34:07.478-8",
  "channelId": "msteams",
  "serviceUrl": "https://smba.trafficmanager.net/teams/",
  "from": {
    "id": "user_id"
  },
  "conversation": {
    "isGroup": true,
    "conversationType": "groupchat",
    "id": "conversation_id"
  },
  "recipient": {
    "id": "28:65f50003-e15d-434a-9e14-0fcfeb3d7817"
  },
  "value": {
    "id": "meeting_id",
    "joinUrl": "join_url",
    "title": "Example meeting",
    "meetingType": "Scheduled",
    "startTime": "2023-02-23T19:34:07.478Z"
  },
  "channelData": {
    "tenant": {
      "id": "tenant_id"
    }
  }
}

Beispiel für die Nutzlast eines Besprechungsende-Ereignisses

Der folgende Code stellt ein Beispiel für die Nutzlast eines Besprechungsende-Ereignisses bereit:

{
  "name": " application/vnd.microsoft.meetingEnd",
  "type": "event",
  "timestamp": "2023-02-23T19:34:07.478Z",
  "localTimestamp": "2023-02-23T11:34:07.478-8",
  "channelId": "msteams",
  "serviceUrl": "https://smba.trafficmanager.net/teams/",
  "from": {
    "id": "user_id"
  },
  "conversation": {
    "isGroup": true,
    "conversationType": "groupchat",
    "id": "conversation_id"
  },
  "recipient": {
    "id": "28:65f50003-e15d-434a-9e14-0fcfeb3d7817"
  },
  "value": {
    "id": "meeting_id",
    "joinUrl": "join_url",
    "title": "Example meeting",
    "meetingType": "Scheduled",
    "EndTime": "2023-02-23T20:30:07.478Z"
  },
  "channelData": {
    "tenant": {
      "id": "tenant_id"
    }
  }
}
Eigenschaftenname Beschreibung
name Der Name des Benutzers.
type Aktivitätstyp.
Timestamp Lokales Datum und uhrzeit der Nachricht, ausgedrückt im ISO-8601-Format.
id ID für die Aktivität.
channelId Kanal, dem diese Aktivität zugeordnet ist.
serviceUrl Dienst-URL, an die Antworten auf diese Aktivität gesendet werden sollen.
from.id ID des Benutzers, der die Anforderung gesendet hat.
from.aadObjectId Microsoft Entra Objekt-ID des Benutzers, der die Anforderung gesendet hat.
conversation.isGroup Boolescher Wert, der angibt, ob die Unterhaltung mehr als zwei Teilnehmer hat.
conversation.tenantId Microsoft Entra Mandanten-ID der Unterhaltung oder Besprechung.
conversation.id Die Chat-ID der Besprechung.
recipient.id ID des Benutzers, der die Anforderung empfängt.
recipient.name Name des Benutzers, der die Anforderung empfängt.
entities.locale Entität, die Metadaten zum Gebietsschema enthält.
entities.country Entität, die Metadaten zum Land enthält.
entities.type Entität, die Metadaten zum Client enthält.
channelData.tenant.id Microsoft Entra Mandanten-ID.
channelData.source Der Quellname, von dem aus das Ereignis ausgelöst oder aufgerufen wird.
channelData.meeting.id Die standard-ID, die der Besprechung zugeordnet ist.
Wert. MeetingType Der Besprechungstyp.
Wert. Titel Das Thema der Besprechung.
Wert. Id Die standard-ID, die der Besprechung zugeordnet ist.
Wert. JoinUrl Die Teilnahme-URL der Besprechung.
Wert. Starttime Die Startzeit der Besprechung in UTC.
Wert. Endtime Die Endzeit der Besprechung in UTC.
locale Das Gebietsschema der nachricht, die vom Client festgelegt wurde.

Empfangen von Besprechungsteilnehmerereignissen

Ihr Bot kann Besprechungsereignisse in Echtzeit empfangen, z. B. Teilnehmerbeitritts- und Austrittsereignisse. Ein Bot kann die Teilnehmerereignisse nur empfangen, wenn er diese Ereignisse im Entwicklerportal abonniert hat.

Hinweis

  • Teilnehmerereignisse werden nur für geplante Besprechungen unterstützt.
  • Damit ein Bot Teilnehmerereignisse empfängt, stellen Sie sicher, dass Sie den Bot der Besprechung hinzufügen, bevor ein Teilnehmer an der Besprechung teilnimmt oder diese verlässt.

Führen Sie die folgenden Schritte aus, um Teilnehmerereignisse zu abonnieren:

  1. Öffnen Sie im Entwicklerportal Ihre Bot-App, oder importieren Sie eine vorhandene App.

  2. Wählen Sie im Abschnitt Besprechungsereignisabonnements die Ereignisse aus:

    • Teilnehmerbeitritt
    • Teilnehmer verlassen
  3. Wählen Sie Speichern aus.

    Screenshot: Anzeige des Entwicklerportals für Teilnehmerereignisse

  4. Stellen Sie sicher, dass die OnlineMeetingParticipant.Read.Chat RSC-Berechtigung in Ihrem App-Manifest konfiguriert ist.

    Wenn Ihre App nicht über die RSC-Berechtigung verfügt, fügen Sie sie über den Abschnitt Berechtigungen konfigurieren> Ihrer App im Entwicklerportal hinzu. Weitere Informationen finden Sie unter RSC-Berechtigungen.

In den folgenden Beispielen wird gezeigt, wie Sie teilnehmerbeitritts- und -verlassen-Ereignisse erfassen:

Beispielcodereferenz

//Invoked on participant join a meeting
protected override async Task OnTeamsMeetingParticipantsJoinAsync(MeetingParticipantsEventDetails meeting, ITurnContext<IEventActivity> turnContext, CancellationToken cancellationToken)
{
  await turnContext.SendActivityAsync("Member has joined the meeting.");
  return;
}

Im Folgenden sind die Beispiele für die Nutzdaten des Teilnehmerbeitritts und -verlassens aufgeführt:

Es folgt ein Beispiel für die Nutzlast des Teilnehmerbeitrittsereignisses:

{ 

    "type": "event", 
    "name": "application/vnd.microsoft.meetingParticipantJoin",
    "timestamp": "2023-02-23T19:34:07.478Z", 
    "channelId": "msteams", 
    "serviceUrl": "https://smba.trafficmanager.net/amer/", 
    "from": { 
        "id": "29:id_xyz" 
    }, 
    "conversation": { 
        "isGroup": true, 
        "conversationType": "groupchat", 
        "id": "19:meeting_threadId@thread.v2" 
    }, 
    "recipient": { 
        "id": "28:botid" 
    },  
    "value": { 
       "members": [ 
       { 
        "user": { 
            "tenantId": "tenantid", 
            "objectId": "user_object_Id", 
            "id": "29:userId ", 
            "name": "Test User", 
            "aadObjectId": " user_object_Id " 
        },   
        "meeting": { 
            "inMeeting": true, 
            "role": "Organizer" //Attendee, Organizer, Presenter 
        },  
        }], 
    }, 
    "channelData": { 
        "tenant": { 
            "id": "tenantId" 
        }, 
        "meeting": { 
            "id": "encoded_meetingId" 
        } 
    } 
} 

Abrufen des eingehenden Audiozustands

Die getIncomingClientAudioState API ermöglicht es einer App, die Einstellung für den eingehenden Audiozustand für den Besprechungsbenutzer abzurufen. Die API ist über die TeamsJS-Bibliothek verfügbar.

Hinweis

  • Die getIncomingClientAudioState API für Mobilgeräte ist in der Öffentlichen Entwicklervorschau verfügbar.
  • Die toggleIncomingClientAudio API ist im neuen Teams-Client verfügbar.
  • Die ressourcenspezifische Zustimmung ist für Manifestversion 1.12 und höhere Versionen verfügbar, daher funktioniert diese API nicht für Manifestversion 1.11 und frühere Versionen.

Manifest

"authorization": {
    "permissions": {
      "resourceSpecific": [
        {
          "name": "OnlineMeetingParticipant.ToggleIncomingAudio.Chat",
          "type": "Delegated"
        }
      ]
    }
  }

Beispiel

callback = (errcode, result) => {
        if (errcode) {
            // Handle error code
        }
        else {
            // Handle success code
        }
    }
// The getIncomingClientAudioState API shows the current audio state.
microsoftTeams.meeting.getIncomingClientAudioState(this.callback)

Abfrageparameter

Die folgende Tabelle enthält den Abfrageparameter:

Wert Typ Erforderlich Beschreibung
callback Zeichenfolge Ja Callback enthält zwei Parameter error und result. Der Fehler kann entweder einen Fehlertyp SdkError enthalten oder null wenn der Audioabruf erfolgreich ist. Das Ergebnis kann entweder den Wert true oder false enthalten, wenn der Audioabruf erfolgreich ist, oder NULL, wenn der Audioabruf fehlschlägt. Die eingehende Audiowiedergabe wird stummgeschaltet, wenn das Ergebnis true ist, und nicht stummgeschaltet, wenn das Ergebnis false ist.

Antwortcodes

Die folgende Tabelle enthält die Antwortcodes:

Antwortcode Beschreibung
500 Interner Fehler.
501 Die API wird im aktuellen Kontext nicht unterstützt.
1000 Die App verfügt nicht über die richtigen Berechtigungen, um das Staging der Freigabe zuzulassen.

Eingehende Audiowiedergabe umschalten

Die toggleIncomingClientAudio API ermöglicht es einer App, die Einstellung für den eingehenden Audiozustand für den Besprechungsbenutzer von Stummschaltung auf Stummschaltung aufheben oder umgekehrt umzuschalten. Die API ist über die TeamsJS-Bibliothek verfügbar.

Hinweis

  • Die toggleIncomingClientAudio API für Mobilgeräte ist in der Öffentlichen Entwicklervorschau verfügbar.
  • Die ressourcenspezifische Zustimmung ist für Manifestversion 1.12 und höhere Versionen verfügbar, daher funktioniert diese API nicht für Manifestversion 1.11 und frühere Versionen.

Manifest

"authorization": {
 "permissions": {
  "resourceSpecific": [
   {
    "name": "OnlineMeetingParticipant.ToggleIncomingAudio.Chat",
    "type": "Delegated"
   }
  ]
 }
}

Beispiel

callback = (error, result) => {
        if (error) {
            // Handle error code
        }
        else {
            // Handle success code
        }
    }
// The toggleIncomingClientAudio API allows an app to toggle the incoming audio state.
microsoftTeams.meeting.toggleIncomingClientAudio(this.callback)

Abfrageparameter

Die folgende Tabelle enthält den Abfrageparameter:

Wert Typ Erforderlich Beschreibung
callback Zeichenfolge Ja Callback enthält zwei Parameter error und result. Der Fehler kann entweder einen Fehlertyp SdkError enthalten oder null wenn der Umschalter erfolgreich ist. Das Ergebnis kann entweder den Wert true oder false enthalten, wenn der Umschalter erfolgreich ist, oder NULL, wenn die Umschaltfläche fehlschlägt. Die eingehende Audiowiedergabe wird stummgeschaltet, wenn das Ergebnis true ist, und nicht stummgeschaltet, wenn das Ergebnis false ist.

Antwortcode

Die folgende Tabelle enthält die Antwortcodes:

Antwortcode Beschreibung
500 Interner Fehler.
501 Die API wird im aktuellen Kontext nicht unterstützt.
1000 Die App verfügt nicht über die richtigen Berechtigungen, um das Staging der Freigabe zuzulassen.

Codebeispiel

Beispielname Beschreibung .NET Node.js Manifest
Erweiterbarkeit von Besprechungen Beispiel für die Erweiterbarkeit von Teams-Besprechungen für die Übergabe von Token. View View View
Besprechungsinterne Benachrichtigung Veranschaulicht, wie Benachrichtigungen in Besprechungen mithilfe eines Bots implementiert werden. View View View
Besprechungsseitenbereich Beispiel für die Erweiterbarkeit von Teams-Besprechungen für die Interaktion mit dem Seitenbereich in der Besprechung. View Anzeigen
Registerkarte „Details“ im Meeting Diese Beispiel-App zeigt das Erweiterbarkeitsfeature für Teams-Besprechungen, bei dem Benutzer eine Umfrage erstellen und Mitglieder die Umfrage in einer Besprechung beantworten können. View View Anzeigen
Beispiel für Meeting-Ereignisse Dieses Beispiel zeigt Teams-Besprechungsereignisse in Echtzeit mithilfe eines Bots. View View Anzeigen
Beispiel für die Rekrutierung von Meetings Diese Beispiel-App zeigt eine Besprechungserfahrung für das Einstellungsszenario mithilfe von Apps in Besprechungen. View View Anzeigen

Siehe auch