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 derdefault
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": "user@microsoft.com", "userPrincipalName": "user@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": "user@microsoft.com", "userPrincipalName": "user@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/user_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": "user@microsoft.com", "userPrincipalName": "user@microsoft.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": "microsoft.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.
- Die
GetParticipant
API wird nur für Verteilerlisten oder Listen 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 imfrom
Objekt und nicht auffrom.aadObjectId
Anforderungsmetadaten stützen.from.id
ist die Benutzer-ID undfrom.aadObjectId
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 vonexternalResourceUrl
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 imvalidDomains
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. Eine 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 |
person Schlüsselwort. 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 Statuscode 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. Sowohl private geplante oder wiederkehrende Besprechungen als auch kanalgesteuerte oder wiederkehrende Besprechungen unterstützen die API 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 Gruppenanrufenorganizer
der Anrufinitiator. Bei Besprechungenorganizer
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 Organizers. |
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
, id
joinUrl
, startTime
und EndTime
enthä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:
Öffnen Sie im Entwicklerportal Ihre Bot-App, oder importieren Sie eine vorhandene App.
Wählen Sie im Abschnitt Besprechungsereignisabonnements die Ereignisse aus:
- Teilnehmerbeitritt
- Teilnehmer verlassen
Wählen Sie Speichern aus.
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:
//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
- Teams-Authentifizierungsablauf für Registerkarten
- Apps für Teams-Besprechungen
- Live Share SDK
- Aufzeichnung einer Teams-Cloudbesprechung
- Abrufen des Anwesenheitsberichts für eine Onlinebesprechung
- Erstellen einer Besprechungsbenachrichtigung für Teams-Besprechungen
- Abrufen von Benachrichtigungen für Updates für Teams-Besprechungsanrufe
- Abrufen der Anwesenheits-API für Teilnehmer