Références API des applications de réunion
L’extensibilité de la réunion fournit des API pour améliorer l’expérience de réunion. Vous pouvez effectuer les opérations suivantes à l’aide des API répertoriées :
- Créez des applications ou intégrez des applications existantes dans le cycle de vie des réunions.
- Utilisez des API pour informer votre application de la réunion.
- Sélectionnez les API requises pour améliorer l’expérience de réunion.
Notes
Utilisez Teams JavaScript SDK (Version 1.10 et ultérieure) pour que le SSO fonctionne dans le panneau latéral de la réunion.
Le tableau suivant fournit la liste des API disponibles sur les kits SDK Microsoft Teams Client (MSTC) et Microsoft Bot Framework (MSBF) :
Méthode | Description | Source |
---|---|---|
Obtenir l’accès avec le contexte utilisateur | Obtenez des informations contextuelles pour afficher du contenu pertinent dans un onglet Microsoft Teams. | MSTC SDK |
Obtenir des Participants | Récupérez les informations du participant par ID de réunion et ID de participant. | MSBF SDK |
Envoyer une notification en réunion | Fournissez des signaux de réunion à l’aide de l’API de notification de conversation existante pour la conversation utilisateur-bot et permet de notifier l’action de l’utilisateur qui affiche une notification en réunion. | MSBF SDK |
Obtenir les détails de la réunion | Obtenez les métadonnées statiques d’une réunion. | MSBF SDK |
Envoyer des légendes en temps réel | Envoyez des sous-titres en temps réel à une réunion en cours. | MSTC SDK |
Partager le contenu de l’application à l’étape | Partagez des parties spécifiques de l’application à la phase de réunion à partir du panneau côté application dans une réunion. | MSTC SDK |
Obtenir l’état de partage de la phase de contenu de l’application | Récupérez des informations sur l’état de partage de l’application lors de la phase de réunion. | MSTC SDK |
Obtenir les fonctionnalités de partage de phase de contenu d’application | Récupérez les fonctionnalités de l’application pour le partage dans la phase de réunion. | MSTC SDK |
Obtenir des événements de réunion Teams en temps réel | Récupérez les événements de réunion en temps réel, tels que l’heure de début et de fin réelle. | MSBF SDK |
Obtenir le haut-parleur audio entrant | Permet à une application d’obtenir le paramètre de haut-parleur audio entrant pour l’utilisateur de la réunion. | MSTC SDK |
Activer/désactiver l’audio entrant | Permet à une application de désactiver le paramètre de haut-parleur audio entrant pour l’utilisateur de la réunion de désactiver le son ou inversement. | MSTC SDK |
Obtenir l’API de contexte utilisateur
Pour identifier et récupérer des informations contextuelles pour le contenu de votre onglet, consultez obtenir le contexte de votre onglet Teams. meetingId
Est utilisé par un onglet en cours d’exécution dans le contexte de la réunion et ajouté pour la charge utile de réponse.
Obtenir l’API du participant
L’API GetParticipant
doit disposer d’une inscription et d’un ID de bot pour générer des jetons d’authentification. Pour plus d’informations, consultez l’inscription et l’ID du bot.
Notes
- Ne mettez pas en cache les rôles de participant, car l’organisateur de la réunion peut modifier les rôles à tout moment.
- Actuellement, l’API
GetParticipant
est uniquement prise en charge pour les listes de distribution ou les listes de moins de 350 participants.
Paramètres de requête
Conseil
Obtenez les ID de participant et les ID de locataire à partir de l’authentification SSO de l’onglet.
L’API Meeting
doit avoir meetingId
, participantId
et tenantId
en tant que paramètres d’URL. Les paramètres sont disponibles dans le cadre du kit de développement logiciel (SDK) client Teams et de l’activité du bot.
Le tableau ci-dessous décrit chaque paramètre de chaîne de requête.
Valeur | Type | Requis | Description |
---|---|---|---|
meetingId | Chaîne | Oui | L’identificateur de réunion est disponible via Bot Invoke et Teams SDK client. |
participantId | Chaîne | Oui | L’ID du participant est l’ID d’utilisateur. Il est disponible dans Tab SSO, Bot Invoke et Teams Client SDK. Il est recommandé d’obtenir un ID de participant à partir de l’authentification unique Tab. |
tenantId | String | Oui | L’ID de locataire est requis pour les utilisateurs du locataire. Il est disponible dans Tab SSO, Bot Invoke et Teams Client SDK. Il est recommandé d’obtenir un ID de locataire à partir de l’authentification unique Tab. |
Exemple
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
TeamsMeetingParticipant participant = await TeamsInfo.GetMeetingParticipantAsync(turnContext, "yourMeetingId", "yourParticipantId", "yourParticipantTenantId").ConfigureAwait(false);
TeamsChannelAccount member = participant.User;
MeetingParticipantInfo meetingInfo = participant.Meeting;
ConversationAccount conversation = participant.Conversation;
await turnContext.SendActivityAsync(MessageFactory.Text($"The participant role is: {meetingInfo.Role}"), cancellationToken);
}
Nom de la propriété | Description |
---|---|
user.id | ID de l’utilisateur. |
user.aadObjectId | ID d’objet Azure Active Directory de l’utilisateur. |
user.name | Nom de l'utilisateur. |
user.givenName | Prénom de l’utilisateur. |
user.surname | Nom de l’utilisateur. |
user.email | ID de messagerie de l’utilisateur. |
user.userPrincipalName | UPN de l’utilisateur. |
user.tenantId | ID du client Azure Active Directory. |
user.userRole | Rôle de l’utilisateur. Par exemple, « admin » ou « user ». |
meeting.role | Rôle du participant dans la réunion. Par exemple, « Organisateur » ou « Présentateur » ou « Participant ». |
meeting.inMeeting | Valeur indiquant si le participant est dans la réunion. |
conversation.id | ID de conversation de réunion. |
conversation.isGroup | Valeur booléenne indiquant si la conversation a plus de deux participants. |
Codes de réponse
Le tableau suivant présente les codes de réponse :
Code de réponse | Description |
---|---|
403 | Les informations sur les participants ne sont pas partagées avec l'application. Si l’application n’est pas installée dans la réunion, elle déclenche la réponse d’erreur 403. Si l’administrateur locataire désactive ou bloque l’application pendant la migration de site en direct, il déclenche la réponse d’erreur 403. |
200 | Les informations du participant sont récupérées avec succès. |
401 | L’application répond avec un jeton non valide. |
404 | La réunion a expiré ou les participants ne sont pas disponibles. |
Envoyer une notification en réunion
Tous les utilisateurs d’une réunion reçoivent les notifications envoyées par le biais de la charge utile de notification en réunion. La charge utile de notification en réunion déclenche une notification en réunion et vous permet de fournir des signaux de réunion fournis à l’aide de l’API de notification de conversation existante pour la conversation utilisateur-bot. Vous pouvez envoyer une notification en réunion en fonction de l’action de l’utilisateur. La charge utile est disponible via Bot Services.
Notes
- Lorsqu’une notification en réunion est appelée, le contenu est présenté sous la forme d’un message de conversation.
- Actuellement, l’envoi de notifications ciblées et la prise en charge de webapp ne sont pas pris en charge.
- Vous devez appeler la fonction submitTask() pour ignorer automatiquement une fois qu’un utilisateur a fait une action dans la vue web. Il s'agit d'une exigence pour la soumission d'une application. Pour plus d'informations, consultez Module de tâches du SDK Teams.
- Si vous souhaitez que votre application prenne en charge les utilisateurs anonymes, la charge utile de la demande d’appel initial doit s’appuyer sur les métadonnées de la demande dans
from.id
l’objet,from
et non surfrom.aadObjectId
les métadonnées de la demande.from.id
est l’ID d’utilisateur etfrom.aadObjectId
est l’ID Microsoft Azure Active Directory (Azure AD) de l’utilisateur. Pour plus d’informations, consultez l’utilisation de modules de tâches dans des onglets et créez et envoyez le module de tâche.
Paramètre de requête
Le tableau suivant inclut le paramètre de requête :
Valeur | Type | Requis | Description |
---|---|---|---|
conversationId | String | Oui | L’identificateur de conversation est disponible dans le cadre de Bot Invoke. |
Exemples
L’objet Bot ID
est déclaré dans le manifeste et le bot reçoit un objet de résultat.
Notes
- Le
completionBotId
paramètre estexternalResourceUrl
facultatif dans l’exemple de charge utile demandée. - Les
externalResourceUrl
paramètres de largeur et de hauteur doivent être en pixels. Pour plus d'informations, consultez Directives de conception Teams. - L’URL est la page, qui se charge comme
<iframe>
dans la notification en réunion. Le domaine doit se trouver dans le tableau desvalidDomains
apps de votre manifeste d'application.
Activity activity = MessageFactory.Text("This is a meeting signal test");
activity.TeamsNotifyUser(true, "https://teams.microsoft.com/l/bubble/APP_ID?url=<url>&height=<height>&width=<width>&title=<title>&completionBotId=BOT_APP_ID");
await turnContext.SendActivityAsync(activity).ConfigureAwait(false);
Nom de la propriété | Description |
---|---|
type | Type d’activité. |
text | Contenu du texte du message. |
summary | Texte récapitulatif du message. |
channelData.notification.alertInMeeting | Valeur booléenne indiquant si une notification doit être affichée à l’utilisateur pendant une réunion. |
channelData.notification.externalResourceUrl | Valeur de l’URL de ressource externe de la notification. |
replyToId | ID du message parent ou racine du thread. |
APP_ID | ID d’application déclaré dans le manifeste. |
completionBotId | ID d’application bot |
Codes de réponse
Le tableau suivant inclut les codes de réponse :
Code de réponse | Description |
---|---|
201 | L’activité avec le signal est envoyée avec succès. |
401 | L’application répond avec un jeton non valide. |
403 | L’application ne peut pas envoyer le signal. Le code de réponse 403 peut se produire pour différentes raisons, telles que la désactivation et le blocage de l’application par l’administrateur client lors de la migration de site en direct. Dans ce cas, la charge utile contient un message d’erreur détaillé. |
404 | La conversation de réunion n’existe pas. |
Obtenir l’API détails de la réunion
L’API Détails de la réunion permet à votre application d’obtenir les métadonnées statiques d’une réunion. Les métadonnées fournissent des points de données qui ne changent pas dynamiquement. L’API est disponible via Bot Services. Actuellement, les réunions privées planifiées ou périodiques et les réunions planifiées par canal ou périodiques prennent respectivement en charge l’API avec des autorisations RSC différentes.
L’API Meeting Details
doit disposer d’une inscription de bot et d’un ID de bot. Il nécessite le Kit de développement logiciel (SDK) bot pour obtenir TurnContext
. Pour utiliser l’API Détails de la réunion, vous devez obtenir différentes autorisations RSC en fonction de l’étendue de toute réunion, telle qu’une réunion privée ou une réunion de canal.
Conditions préalables
Pour utiliser l’API Détails de la réunion, vous devez obtenir différentes autorisations RSC en fonction de l’étendue de toute réunion, telle qu’une réunion privée ou une réunion de canal.
Pour le manifeste d’application version 1.12 et ultérieure
Utilisez l’exemple suivant pour configurer les propriétés et authorization
le manifeste de webApplicationInfo
votre application pour toute réunion privée :
"webApplicationInfo": {
"id": "<bot id>",
"resource": "https://RscPermission",
},
"authorization": {
"permissions": {
"resourceSpecific": [
{
"name": "OnlineMeeting.ReadBasic.Chat",
"type": "Application"
}
]
}
}
Utilisez l’exemple suivant pour configurer les propriétés et authorization
le manifeste de webApplicationInfo
votre application pour n’importe quelle réunion de canal :
"webApplicationInfo": {
"id": "<bot id>",
"resource": "https://RscPermission",
},
"authorization": {
"permissions": {
"resourceSpecific": [
{
"name": "ChannelMeeting.ReadBasic.Group",
"type": "Application"
}
]
}
}
Pour le manifeste d’application version 1.11 et antérieure
Utilisez l’exemple suivant pour configurer la propriété du manifeste de webApplicationInfo
votre application pour toute réunion privée :
"webApplicationInfo": {
"id": "<bot id>",
"resource": "https://RscPermission",
"applicationPermissions": [
"OnlineMeeting.ReadBasic.Chat"
]
}
Utilisez l’exemple suivant pour configurer la propriété de votre manifeste d’application webApplicationInfo
pour toute réunion de canal :
"webApplicationInfo": {
"id": "<bot id>",
"resource": "https://RscPermission",
"applicationPermissions": [
"ChannelMeeting.ReadBasic.Group"
]
}
Notes
Le bot peut recevoir automatiquement des événements de début ou de fin de réunion à partir de toutes les réunions créées dans tous les canaux en ajoutant
ChannelMeeting.ReadBasic.Group
au manifeste pour l’autorisation RSC.Pour un appel
organizer
en tête-à-tête est l’initiateur de la conversation et pour les appelsorganizer
de groupe est l’initiateur de l’appel.
Paramètre de requête
Le tableau suivant répertorie quelques exemples où le paramètre de requête est utilisé.
Valeur | Type | Requis | Description |
---|---|---|---|
meetingId | Chaîne | Oui | L’identificateur de réunion est disponible via Bot Invoke et Teams SDK client. |
Exemple
MeetingInfo result = await TeamsInfo.GetMeetingInfoAsync(turnContext);
await turnContext.SendActivityAsync(JsonConvert.SerializeObject(result));
Nom de la propriété | Description |
---|---|
details.id | ID de la réunion, encodé sous forme de chaîne BASE64. |
details.msGraphResourceId | MsGraphResourceId, utilisé spécifiquement pour les appels API Graph MS. |
details.scheduledStartTime | Heure de début planifiée de la réunion, au format UTC. |
details.scheduledEndTime | Heure de fin planifiée de la réunion, au format UTC. |
details.joinUrl | URL utilisée pour rejoindre la réunion. |
details.title | Titre de la réunion. |
details.type | Type de réunion (GroupCall, OneToOneCall, Adhoc, Broadcast, MeetNow, Recurring, Scheduled ou Unknown). |
conversation.isGroup | Valeur booléenne indiquant si la conversation a plus de deux participants. |
conversation.conversationType | Type de conversation. |
conversation.id | ID de conversation de réunion. |
organizer.id | ID d’utilisateur de l’organisateur. |
organizer.aadObjectId | ID d’objet Azure Active Directory de l’organisateur. |
organizer.tenantId | ID de locataire Azure Active Directory de l’organisateur. |
En cas de type de réunion périodique,
startDate : spécifie la date de début de l’application du modèle. La valeur de startDate doit correspondre à la valeur de date de la propriété start sur la ressource d’événement. Notez que la première occurrence de la réunion peut ne pas se produire à cette date si elle ne correspond pas au modèle.
endDate : spécifie la date à laquelle arrêter l’application du modèle. Notez que la dernière occurrence de la réunion peut ne pas se produire à cette date si elle ne correspond pas au modèle.
API Envoyer des légendes en temps réel
L’API envoyer des sous-titres en temps réel expose un point de terminaison POST pour les sous-titres cart (Traduction en temps réel) de l’accès aux communications Teams, sous-titres fermés de type humain. Le contenu texte envoyé à ce point de terminaison apparaît aux utilisateurs finaux d’une réunion Teams quand des légendes sont activées.
URL CART
Vous pouvez obtenir l’URL CART pour le point de terminaison POST à partir de la page Options de réunion d’une réunion Teams. Pour plus d’informations, consultez les légendes CART dans une réunion Microsoft Teams. Vous n’avez pas besoin de modifier l’URL CART pour utiliser des légendes CART.
Paramètre de requête
L’URL CART inclut les paramètres de requête suivants :
Valeur | Type | Requis | Description |
---|---|---|---|
meetingId | Chaîne | Oui | L’identificateur de réunion est disponible via Bot Invoke et Teams SDK client. Par exemple, 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 |
Jeton | Chaîne | Oui | Jeton d’autorisation Par exemple, token=04751eac |
Exemple
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
Méthode
Ressource | Méthode | Description |
---|---|---|
/cartcaption | POST | Gérer les légendes pour la réunion, qui a été démarrée |
Notes
Vérifiez que le type de contenu pour toutes les demandes est du texte brut avec encodage UTF-8. Le corps de la requête contient uniquement des légendes.
Exemple
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.
Notes
Chaque requête POST génère une nouvelle ligne de légendes. Pour vous assurer que l’utilisateur final dispose de suffisamment de temps pour lire le contenu, limitez chaque corps de requête POST à 80 à 120 caractères.
Codes d’erreur
Le tableau suivant décrit les codes d'erreur.
Code d'erreur | Description |
---|---|
400 | Demande incorrecte Le corps de la réponse contient plus d’informations. Par exemple, tous les paramètres requis ne sont pas présentés. |
401 | Non autorisé Jeton incorrect ou expiré Si vous recevez cette erreur, générez une nouvelle URL CART dans Teams. |
404 | Réunion introuvable ou non démarrée Si vous recevez cette erreur, veillez à démarrer la réunion et à sélectionner les légendes de début. Une fois les légendes activées dans la réunion, vous pouvez commencer à ajouter des sous-titres à la réunion. |
500 | Erreur interne au serveur. Pour plus d’informations, contactez le support technique ou fournissez des commentaires. |
Partager le contenu de l’application pour mettre en scène l’API
L’API shareAppContentToStage
vous permet de partager des parties spécifiques de votre application à la phase de réunion. L’API est disponible via le SDK client Teams.
Conditions préalables
Pour utiliser l’API
shareAppContentToStage
, vous devez obtenir les autorisations RSC. Dans le manifeste de l’application, configurez laauthorization
propriéténame
et letype
champresourceSpecific
. Par exemple :"authorization": { "permissions": { "resourceSpecific": [ { "name": "MeetingStage.Write.Chat", "type": "Delegated" } ] } }
appContentUrl
doit être autorisé parvalidDomains
le tableau à l’intérieur de manifest.json, sinon l’API retournerait 501.
Paramètre de requête
Le tableau ci-dessous décrit chaque paramètre de chaîne de requête.
Valeur | Type | Requis | Description |
---|---|---|---|
callback | Chaîne | Oui | Le rappel contient deux paramètres, l’erreur et le résultat. L’erreur peut contenir une erreur de type SdkError ou null lorsque le partage réussit. Le résultat peut contenir une valeur true, en cas de partage réussi, ou null en cas d’échec du partage. |
appContentURL | Chaîne | Oui | URL qui sera partagée sur la scène. |
Exemple
const appContentUrl = "https://www.bing.com/";
microsoftTeams.meeting.shareAppContentToStage((err, result) => {
if (result) {
// handle success
}
if (err) {
// handle error
}
}, appContentUrl);
Codes de réponse
Le tableau suivant présente les codes de réponse :
Code de réponse | Description |
---|---|
500 | Erreur interne. |
501 | L’API n’est pas prise en charge dans le contexte actuel. |
1 000 | L’application ne dispose pas des autorisations appropriées pour autoriser le partage à être mis en scène. |
Obtenir l’API d’état de partage de l’étape de contenu de l’API
L’API getAppContentStageSharingState
vous permet d’extraire des informations sur le partage des applications lors de la phase de réunion.
Paramètre de requête
Le tableau suivant inclut le paramètre de requête :
Valeur | Type | Requis | Description |
---|---|---|---|
callback | Chaîne | Oui | Le rappel contient deux paramètres, l’erreur et le résultat. L’erreur peut contenir une erreur de type SdkError, en cas d’erreur, ou null lorsque le partage réussit. Le résultat peut contenir un AppContentStageSharingState objet, indiquant une récupération réussie, ou null, indiquant l’échec de la récupération. |
Exemple
microsoftTeams.meeting.getAppContentStageSharingState((err, result) => {
if (result.isAppSharing) {
// Indicates app has permission to share contents to meeting stage.
}
});
Le corps de la réponse JSON pour l’API getAppContentStageSharingState
est le suivant :
{
"isAppSharing":true
}
Codes de réponse
Le tableau suivant présente les codes de réponse :
Code de réponse | Description |
---|---|
500 | Erreur interne. |
501 | L’API n’est pas prise en charge dans le contexte actuel. |
1 000 | L’application ne dispose pas des autorisations appropriées pour autoriser le partage à être mis en scène. |
Obtenir l'API des capacités de partage du contenu de l'application
L’API getAppContentStageSharingCapabilities
vous permet d’extraire les fonctionnalités de l’application pour le partage dans la phase de réunion.
Paramètre de requête
Le tableau suivant inclut le paramètre de requête :
Valeur | Type | Requis | Description |
---|---|---|---|
callback | Chaîne | Oui | Le rappel contient deux paramètres, l’erreur et le résultat. L’erreur peut contenir une erreur de type SdkError ou null lorsque le partage réussit. Le résultat peut contenir un objet AppContentStageSharingState , indiquant une récupération réussie, ou null, indiquant l’échec de la récupération. |
Exemple
microsoftTeams.meeting.getAppContentStageSharingCapabilities((err, result) => {
if (result.doesAppHaveSharePermission) {
// Indicates app has permission to share contents to meeting stage.
}
});
Le corps de la réponse JSON pour getAppContentStageSharingCapabilities
l’API est le suivant :
{
"doesAppHaveSharePermission":true
}
Codes de réponse
Le tableau suivant présente les codes de réponse :
Code de réponse | Description |
---|---|
500 | Erreur interne. |
1 000 | L’application ne dispose pas des autorisations nécessaires pour autoriser le partage à être mis en scène. |
Obtenir l’API d’événements de réunion Teams en temps réel
Notes
Les événements de réunion Teams en temps réel sont pris en charge uniquement pour les réunions planifiées.
L’utilisateur peut recevoir des événements de réunion en temps réel. Dès qu’une application est associée à une réunion, l’heure de début et de fin de la réunion réelle est partagée avec le bot. L’heure de début et de fin réelle d’une réunion est différente de l’heure de début et de fin planifiée. L’API Détails de la réunion fournit l’heure de début et de fin planifiée. L’événement fournit l’heure de début et de fin réelle.
Vous devez connaître l’objet TurnContext
disponible via le Kit de développement logiciel (SDK) Bot. L’objet Activity
dans TurnContext
contient la charge utile avec l’heure de début et de fin réelle. Les événements de réunion en temps réel nécessitent un ID de bot inscrit à partir de la plateforme Teams. Le bot peut recevoir automatiquement l’événement de début ou de fin de la réunion en l’ajoutant ChannelMeeting.ReadBasic.Group
dans le manifeste.
Conditions préalables
Le manifeste de votre application doit avoir la webApplicationInfo
propriété pour recevoir les événements de début et de fin de la réunion. Utilisez les exemples suivants pour configurer votre manifeste :
Pour le manifeste d’application version 1.12 et ultérieure
"webApplicationInfo": {
"id": "<bot id>",
"resource": "https://RscPermission",
},
"authorization": {
"permissions": {
"resourceSpecific": [
{
"name": "OnlineMeeting.ReadBasic.Chat",
"type": "Application"
}
]
}
}
Pour le manifeste d’application version 1.11 et antérieure
"webApplicationInfo": {
"id": "<bot id>",
"resource": "https://RscPermission",
"applicationPermissions": [
"OnlineMeeting.ReadBasic.Chat"
]
}
Exemple d’obtention MeetingStartEndEventvalue
Le bot reçoit l’événement par le biais du OnEventActivityAsync
gestionnaire. Pour désérialiser la charge utile JSON, un objet de modèle est introduit pour obtenir les métadonnées d’une réunion. Les métadonnées d’une réunion se trouve dans la value
propriété dans la charge utile de l’événement. L’objet MeetingStartEndEventvalue
modèle est créé, dont les variables membres correspondent aux clés sous la value
propriété dans la charge utile de l’événement.
Notes
- Obtenir l’ID de réunion à partir de
turnContext.ChannelData
- N’utilisez pas l’ID de conversation comme ID de réunion.
- N’utilisez pas l’ID de réunion à partir de la charge utile
turncontext.activity.value
des événements de réunion.
Le code suivant montre comment capturer les métadonnées d’une réunion qui est MeetingType
, Title
, Id``JoinUrl
, StartTime
et EndTime
à partir d’un événement de début/fin de réunion :
Événement de début de réunion
protected override async Task OnTeamsMeetingStartAsync(MeetingStartEventDetails meeting, ITurnContext<IEventActivity> turnContext, CancellationToken cancellationToken)
{
await turnContext.SendActivityAsync(JsonConvert.SerializeObject(meeting));
}
Événement de fin de réunion
protected override async Task OnTeamsMeetingEndAsync(MeetingEndEventDetails meeting, ITurnContext<IEventActivity> turnContext, CancellationToken cancellationToken)
{
await turnContext.SendActivityAsync(JsonConvert.SerializeObject(meeting));
}
Exemple de charge utile d’événement de début de réunion
Le code suivant fournit un exemple de charge utile d’événement de début de réunion :
{
"name": "application/vnd.microsoft.meetingStart",
"type": "event",
"timestamp": "2021-04-29T16:10:41.1252256Z",
"id": "123",
"channelId": "msteams",
"serviceUrl": "https://microsoft.com",
"from": {
"id": "userID",
"aadObjectId": "aadOnjectId"
},
"conversation": {
"isGroup": true,
"tenantId": "tenantId",
"id": "thread id"
},
"recipient": {
"id": "user Id",
"name": "user name"
},
"entities": [
{
"locale": "en-US",
"country": "US",
"type": "clientInfo"
}
],
"channelData": {
"tenant": {
"id": "channel id"
},
"source": null,
"meeting": {
"id": "meeting id"
}
},
"value": {
"MeetingType": "Scheduled",
"Title": "Meeting Start/End Event",
"Id": "meeting id",
"JoinUrl": "url"
"StartTime": "2021-04-29T16:17:17.4388966Z"
},
"locale": "en-US"
}
Exemple de charge utile d’événement de fin de réunion
Le code suivant fournit un exemple de charge utile d’événement de fin de réunion :
{
"name": "application/vnd.microsoft.meetingEnd",
"type": "event",
"timestamp": "2021-04-29T16:17:17.4388966Z",
"id": "123",
"channelId": "msteams",
"serviceUrl": "https://microsoft.com",
"from": {
"id": "user id",
"aadObjectId": "aadObjectId"
},
"conversation": {
"isGroup": true,
"tenantId": "tenantId",
"id": "thread id"
},
"recipient": {
"id": "user id",
"name": "user name"
},
"entities": [
{
"locale": "en-US",
"country": "US",
"type": "clientInfo"
}
],
"channelData": {
"tenant": {
"id": "channel id"
},
"source": null,
"meeting": {
"id": "meeting Id"
}
},
"value": {
"MeetingType": "Scheduled",
"Title": "Meeting Start/End Event in Canary",
"Id": "19:meeting_NTM3ZDJjOTUtZGRhOS00MzYxLTk5NDAtMzY4M2IzZWFjZGE1@thread.v2",
"JoinUrl": "url",
"EndTime": "2021-04-29T16:17:17.4388966Z"
},
"locale": "en-US"
}
Nom de la propriété | Description |
---|---|
name | Nom de l'utilisateur. |
type | Type d’activité. |
timestamp | Date et heure locales du message, exprimées au format ISO-8601. |
id | ID de l’activité. |
channelId | Canal auquel cette activité est associée. |
serviceUrl | URL du service où les réponses à cette activité doivent être envoyées. |
from.id | Identification de l'utilisateur qui a envoyé la demande. |
from.aadObjectId | Identification de l'objet Azure Active Directory de l'utilisateur qui a envoyé la demande. |
conversation.isGroup | Valeur booléenne indiquant si la conversation a plus de deux participants. |
conversation.tenantId | ID de locataire Azure Active Directory de la conversation ou de la réunion. |
conversation.id | ID de conversation de réunion. |
recipient.id | ID de l’utilisateur qui reçoit la demande. |
recipient.name | Nom de l’utilisateur qui reçoit la demande. |
entities.locale | qui contient des métadonnées sur les paramètres régionaux. |
entities.country | entité qui contient des métadonnées sur le pays. |
entities.type | entité qui contient des métadonnées sur le client. |
channelData.tenant.id | ID du client Azure Active Directory. |
channelData.source | Nom source à partir duquel l’événement est déclenché ou appelé. |
channelData.meeting.id | ID par défaut associé à la réunion. |
valeur. MeetingType | Type de réunion. |
valeur. Titre | Objet de la réunion. |
valeur. Id | ID par défaut associé à la réunion. |
valeur. JoinUrl | URL de participation de la réunion. |
valeur. StartTime | Heure de début de la réunion en UTC. |
valeur. EndTime | Heure de fin de la réunion en UTC. |
locale | Paramètres régionaux du message défini par le client. |
Obtenir le haut-parleur audio entrant
L’API getIncomingClientAudioState
permet à une application d’obtenir le paramètre de haut-parleur audio entrant pour l’utilisateur de la réunion. L’API est disponible via le SDK client Teams.
Notes
L’API getIncomingClientAudioState
pour mobile est actuellement disponible uniquement en préversion publique des développeurs.
Paramètre de requête
Le tableau suivant inclut le paramètre de requête :
Valeur | Type | Requis | Description |
---|---|---|---|
callback | Chaîne | Oui | Le rappel contient deux paramètres error et result . L’erreur peut contenir un type SdkError d’erreur ou null une fois la récupération audio réussie. Le résultat peut contenir une valeur true ou false lorsque l’extraction audio réussit ou null en cas d’échec de la récupération audio. L’audio entrant est désactivé si le résultat est vrai et désactivé si le résultat est false. |
Exemple
function getIncomingClientAudioState(
callback: (error: SdkError | null, result: boolean | null) => void,
): void {
if (!callback) {
throw new Error('[get incoming client audio state] Callback cannot be null');
}
ensureInitialized(FrameContexts.sidePanel, FrameContexts.meetingStage);
sendMessageToParent('getIncomingClientAudioState', callback);
}
Codes de réponse
Le tableau suivant présente les codes de réponse :
Code de réponse | Description |
---|---|
500 | Erreur interne. |
501 | L’API n’est pas prise en charge dans le contexte actuel. |
1 000 | L’application ne dispose pas des autorisations appropriées pour autoriser le partage à être mis en scène. |
Activer/désactiver l’audio entrant
L’API toggleIncomingClientAudio
permet à une application de désactiver le paramètre du haut-parleur audio entrant pour l’utilisateur de la réunion de désactiver le son ou inversement. L’API est disponible via le SDK client Teams.
Notes
L’API toggleIncomingClientAudio
pour mobile est actuellement disponible uniquement en préversion publique des développeurs.
Paramètre de requête
Le tableau suivant inclut le paramètre de requête :
Valeur | Type | Requis | Description |
---|---|---|---|
callback | Chaîne | Oui | Le rappel contient deux paramètres error et result . L’erreur peut contenir un type SdkError d’erreur ou null une fois le basculement réussi. Le résultat peut contenir une valeur true ou false, lorsque le basculement est réussi ou null en cas d’échec du basculement. L’audio entrant est désactivé si le résultat est vrai et désactivé si le résultat est false. |
Exemple
function toggleIncomingClientAudio(callback: (error: SdkError | null, result: boolean | null) => void): void {
if (!callback) {
throw new Error('[toggle incoming client audio] Callback cannot be null');
}
ensureInitialized(FrameContexts.sidePanel, FrameContexts.meetingStage);
sendMessageToParent('toggleIncomingClientAudio', callback);
}
Code de réponse
Le tableau suivant présente les codes de réponse :
Code de réponse | Description |
---|---|
500 | Erreur interne. |
501 | L’API n’est pas prise en charge dans le contexte actuel. |
1 000 | L’application ne dispose pas des autorisations appropriées pour autoriser le partage à être mis en scène. |
Exemple de code
Exemple de nom | Description | C# | Node.js |
---|---|---|---|
Extensibilité des réunions | Exemple d’extensibilité de réunion Teams pour passer des jetons. | View | View |
Bot de bulles de contenu de réunion | Exemple d’extensibilité de réunion Teams pour interagir avec le bot de bulles de contenu dans une réunion. | View | View |
Réunion MeetingSidePanel | Exemple d’extensibilité de réunion Teams pour interagir avec le panneau latéral en réunion. | View | View |
Onglet Détails de la réunion | Exemple d’extensibilité de réunion Teams pour interagir avec l’onglet Détails en réunion. | View | View |
Exemple d’événements de réunion | Exemple d’application pour afficher des événements de réunion Teams en temps réel | View | View |
Exemple de recrutement de réunions | Exemple d’application pour afficher l’expérience de réunion pour le scénario de recrutement | View | View |
Installation de l’application à l’aide du code QR | Exemple d’application qui génère le code QR et installe l’application à l’aide du code QR | View | View |
Voir aussi
- Flux d’authentification Teams pour les onglets
- Applications pour les réunions Teams
- FAQ sur le Kit de développement logiciel (SDK) de Live Share