Crie aplicativos para reuniões do TeamsCreate apps for Teams meetings

Pré-requisitos e consideraçõesPrerequisites and considerations

Antes de criar aplicativos para reuniões do Teams, você deve ter uma compreensão do seguinte:Before you create apps for Teams meetings, you must have an understanding of the following:

  • Você deve ter conhecimento de como desenvolver aplicativos do Teams.You must have knowledge of how to develop Teams apps. Para obter mais informações, consulte Desenvolvimento de aplicativos do Teams.For more information, see Teams app development.

  • Você deve atualizar o manifesto do aplicativo do Teams para indicar que o aplicativo está disponível para reuniões.You must update the Teams app manifest to indicate that the app is available for meetings. Para obter mais informações, consulte manifesto do aplicativo.For more information, see app manifest.

  • Para que seu aplicativo funcione no ciclo de vida da reunião como uma guia, ele deve dar suporte a guias configuráveis no escopo de groupchat.For your app to function in the meeting lifecycle as a tab, it must support configurable tabs in the groupchat scope. Para obter mais informações, consulte groupchat scope and build a group tab.For more information, see groupchat scope and build a group tab.

  • Você deve seguir as diretrizes gerais de design de guia do Teams para cenários pré e pós-reunião.You must adhere to general Teams tab design guidelines for pre- and post-meeting scenarios. Para experiências durante as reuniões, consulte a guia na reunião e as diretrizes de design da caixa de diálogo na reunião.For experiences during meetings, refer to the in-meeting tab and in-meeting dialog design guidelines. Para obter mais informações, consulte Diretrizes de design de guia do Teams,diretrizes de design da guia de reunião e diretrizes de design de caixa de diálogo na reunião.For more information, see Teams tab design guidelines, in-meeting tab design guidelines and in-meeting dialog design guidelines.

  • Você deve dar suporte ao escopo para habilitar seu aplicativo em chats de groupchat pré-reunião e pós-reunião.You must support the groupchat scope to enable your app in pre-meeting and post-meeting chats. Com a experiência do aplicativo de pré-reunião, você pode encontrar e adicionar aplicativos de reunião e realizar tarefas de pré-reunião.With the pre-meeting app experience, you can find and add meeting apps and perform pre-meeting tasks. Com a experiência do aplicativo pós-reunião, você pode exibir os resultados da reunião, como resultados da pesquisa ou comentários.With post-meeting app experience, you can view the results of the meeting, such as poll survey results or feedback.

  • Os parâmetros de URL da API de reunião meetingId devem ter , e userId tenantId .Meeting API URL parameters must have meetingId, userId, and tenantId. Eles estão disponíveis como parte da atividade de SDK e bot do cliente do Teams.These are available as part of the Teams client SDK and bot activity. Além disso, informações confiáveis para iD de usuário e ID de locatário podem ser recuperadas usando a autenticação tab SSO.In addition, reliable information for user ID and tenant ID can be retrieved using Tab SSO authentication.

  • A GetParticipant API deve ter um registro de bot e uma ID para gerar tokens de auth.The GetParticipant API must have a bot registration and ID to generate auth tokens. Para obter mais informações, consulte registro de bot e ID.For more information, see bot registration and ID.

  • Para que seu aplicativo seja atualizado em tempo real, ele deve estar atualizado com base nas atividades do evento na reunião.For your app to update in real time, it must be up-to-date based on event activities in the meeting. Esses eventos podem estar dentro da caixa de diálogo na reunião e em outros estágios no ciclo de vida da reunião.These events can be within the in-meeting dialog box and other stages across the meeting lifecycle. Para a caixa de diálogo na reunião, consulte o parâmetro completion bot Id em Notification Signal API .For the in-meeting dialog box, see completion bot Id parameter in Notification Signal API.

Referência da API de aplicativos de reuniãoMeeting apps API reference

APIAPI DescriçãoDescription SolicitaçãoRequest OrigemSource
GetUserContextGetUserContext Essa API permite que você receba informações contextuais para exibir conteúdo relevante em uma guia do Teams.This API enables you to get contextual information to display relevant content in a Teams tab. **microsoftTeams.getContext( ( ) => { /...* / } )*microsoftTeams.getContext( ( ) => { /.../ } ) SDK de cliente do Microsoft TeamsMicrosoft Teams client SDK
GetParticipantGetParticipant Essa API permite que um bot busque informações dos participantes por meio da ID da reunião e da ID do participante.This API allows a bot to fetch participant information by meeting ID and participant ID. GET /v1/meetings/{meetingId}/participants/{participantId}?tenantId={tenantId}GET /v1/meetings/{meetingId}/participants/{participantId}?tenantId={tenantId} Microsoft Bot Framework SDKMicrosoft Bot Framework SDK
NotificationSignalNotificationSignal Essa API permite que você forneça sinais de reunião que são entregues usando a API de notificação de conversa existente para chat de usuário-bot.This API enables you to provide meeting signals that are delivered using the existing conversation notification API for user-bot chat. Ele permite sinalizar com base na ação do usuário que mostra uma caixa de diálogo na reunião.It allows you to signal based on user action that shows an in-meeting dialog box. POST /v3/conversations/{conversationId}/activitiesPOST /v3/conversations/{conversationId}/activities Microsoft Bot Framework SDKMicrosoft Bot Framework SDK

GetUserContextGetUserContext

Para identificar e recuperar informações contextuais para o conteúdo da guia, consulte obter contexto para a guia Do Teams. meetingId é usado por uma guia ao ser executado no contexto da reunião e é adicionado para a carga de resposta.To identify and retrieve contextual information for your tab content, see get context for your Teams tab. meetingId is used by a tab when running in the meeting context and is added for the response payload.

GetParticipant APIGetParticipant API

Observação

  • Não armazenar em cache as funções do participante, pois o organizador da reunião pode alterar uma função a qualquer momento.Do not cache participant roles since the meeting organizer can change a role any time.
  • No momento, o Teams não dá suporte a grandes listas de distribuição ou tamanhos de lista de mais de 350 participantes para a GetParticipant API.Teams does not currently support large distribution lists or roster sizes of more than 350 participants for the GetParticipant API.

Parâmetros de consultaQuery parameters

ValorValue TipoType ObrigatórioRequired DescriçãoDescription
meetingIdmeetingId stringstring SimYes O identificador de reunião está disponível por meio do Bot Invoke e do SDK do Cliente do Teams.The meeting identifier is available through Bot Invoke and Teams Client SDK.
participantIdparticipantId stringstring SimYes A ID do participante é a ID do usuário.The participant ID is the user ID. Ele está disponível em Tab SSO, Bot Invoke e Teams Client SDK.It is available in Tab SSO, Bot Invoke, and Teams Client SDK. É recomendável obter uma ID do participante no SSO da guia.It is recommended to get a participant ID from the Tab SSO.
tenantIdtenantId stringstring SimYes A ID do locatário é necessária para os usuários do locatário.The tenant ID is required for the tenant users. Ele está disponível em Tab SSO, Bot Invoke e Teams Client SDK.It is available in Tab SSO, Bot Invoke, and Teams Client SDK. É recomendável obter uma ID de locatário do SSO de tabulação.It is recommended to get a tenant ID from the Tab SSO.

ExemploExample

protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
  TeamsMeetingParticipant participant = GetMeetingParticipantAsync(turnContext, "yourMeetingId", "yourParticipantId", "yourTenantId");
  TeamsChannelAccount member = participant.User;
  MeetingParticipantInfo meetingInfo = participant.Meeting;
  ConversationAccount conversation = participant.Conversation;

  await turnContext.SendActivityAsync(MessageFactory.Text($"The participant role is: {meetingInfo.Role}"), cancellationToken);
}

O corpo de resposta JSON para GetParticipant API é:The JSON response body for GetParticipant API is:

{
   "user":{
      "id":"29:1JKiJGPAX9TTxtGxhVo0wLx_zwzo-gG8Z-X03306vBwi9p-xMTEbDXsT6KH7-0kkTS8cD-2zkrsoV6f5WJ6_aYw",
      "aadObjectId":"e236c4bf-88b1-4f3a-b1d7-8891dfc332b5",
      "name":"Bob Young",
      "givenName":"Bob",
      "surname":"Young",
      "email":"Bob.young@microsoft.com",
      "userPrincipalName":"Bob.young@microsoft.com",
      "tenantId":"2fe477ab-0efc-4dfd-bde2-484374e2c373",
      "userRole":"user"
   },
   "meeting":{
      "role ":"Presenter",
      "inMeeting":true
   },
   "conversation":{
      "id":"<conversation id>",
      "isGroup":true
   }
}

Códigos de respostaResponse codes

Código da respostaResponse code DescriçãoDescription
403403 O aplicativo não tem permissão para obter informações do participante.The app is not allowed to get participant information. Essa é a resposta de erro mais comum e é disparada se o aplicativo não estiver instalado na reunião.This is the most common error response and is triggered if the app is not installed in the meeting. Por exemplo, se o aplicativo for desabilitado pelo administrador do locatário ou bloqueado durante a migração do site ao vivo.For example, if the app is disabled by tenant admin or blocked during live site migration.
200200 As informações do participante são recuperadas com êxito.The participant information is successfully retrieved.
401401 O aplicativo responde com um token inválido.The app responds with an invalid token.
404404 A reunião expirou ou o participante não pode ser encontrado.The meeting has either expired or participant cannot be found.
500500 A reunião expirou mais de 60 dias desde que a reunião terminou ou o participante não tem permissões com base em sua função.The meeting has either expired more than 60 days since the meeting ended or the participant does not have permissions based on their role.

NotificationSignal APINotificationSignal API

Todos os usuários em uma reunião recebem as notificações enviadas por meio da NotificationSignal API.All users in a meeting receive the notifications sent through the NotificationSignal API.

Observação

  • Quando uma caixa de diálogo na reunião é invocada, o conteúdo é apresentado como uma mensagem de chat.When an in-meeting dialog box is invoked, the content is presented as a chat message.
  • Atualmente, não há suporte para o envio de notificações direcionadas.Currently, sending targeted notifications is not supported.

Parâmetros de consultaQuery parameters

ValorValue TipoType ObrigatórioRequired DescriçãoDescription
conversationIdconversationId stringstring SimYes O identificador de conversa está disponível como parte da invocação de botThe conversation identifier is available as part of bot invoke

ExemploExample

O Bot ID é declarado no manifesto e o bot recebe um objeto de resultado.The Bot ID is declared in the manifest and the bot receives a result object.

Observação

  • O completionBotId parâmetro do é opcional no exemplo de carga externalResourceUrl solicitada.The completionBotId parameter of the externalResourceUrl is optional in the requested payload example. Bot ID é declarado no manifesto e o bot recebe um objeto de resultado.Bot ID is declared in the manifest and the bot receives a result object.
  • Os externalResourceUrl parâmetros de largura e altura devem estar em pixels.The externalResourceUrl width and height parameters must be in pixels. Para garantir que as dimensões estão dentro dos limites permitidos, consulte diretrizes de design.To ensure the dimensions are within the allowed limits, see design guidelines.
  • A URL é a página carregada como <iframe> uma caixa de diálogo na reunião.The URL is the page loaded as an <iframe> in the in-meeting dialog box. O domínio deve estar na matriz do aplicativo validDomains no manifesto do aplicativo.The domain must be in the app's validDomains array in your app manifest.
Activity activity = MessageFactory.Text("This is a meeting signal test");

activity.ChannelData = new TeamsChannelData
  {
    Notification = new NotificationInfo()
                    {
                        AlertInMeeting = true,
                        ExternalResourceUrl = "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);

Códigos de respostaResponse codes

Código da respostaResponse code DescriçãoDescription
201201 A atividade com sinal é enviada com êxitoThe activity with signal is successfully sent
401401 O aplicativo responde com um token inválido.The app responds with an invalid token.
403403 O aplicativo não consegue enviar o sinal.The app is unable to send the signal. Isso pode acontecer devido a vários motivos, como o administrador de locatários desabilita o aplicativo, o aplicativo é bloqueado durante a migração de site ao vivo e assim por diante.This can happen due to various reasons such as the tenant admin disables the app, the app is blocked during live site migration, and so on. Nesse caso, a carga contém uma mensagem de erro detalhada.In this case, the payload contains a detailed error message.
404404 O chat de reunião não existe.The meeting chat does not exist.

Habilitar seu aplicativo para reuniões do TeamsEnable your app for Teams meetings

Atualizar o manifesto do aplicativoUpdate your app manifest

Os recursos do aplicativo de reuniões são declarados no manifesto do aplicativo usando configurableTabs scopes as matrizes , e context .The meetings app capabilities are declared in your app manifest using the configurableTabs, scopes, and context arrays. O escopo define a quem e o contexto define onde seu aplicativo está disponível.Scope defines to whom and context defines where your app is available.

Observação

Tente atualizar o manifesto do aplicativo com o esquema de manifesto.Try updating your app manifest with the manifest schema. Aplicativos em reuniões precisam de escopo de groupchat.Apps in meetings need groupchat scope. O escopo da equipe funciona apenas para guias em canais.The team scope works for tabs in channels only.


"configurableTabs": [
    {
      "configurationUrl": "https://contoso.com/teamstab/configure",
      "canUpdateConfiguration": true,
      "scopes": [
        "team",
        "groupchat"
      ],
      "context":[
        "channelTab",
        "privateChatTab",
        "meetingChatTab",
        "meetingDetailsTab",
        "meetingSidePanel",
        "meetingStage"
     ]
    }
  ]

Observação

meetingStage está disponível no momento apenas na visualização do desenvolvedor.meetingStage is currently available in developer preview only.

Propriedade ContextContext property

A guia context e scopes as propriedades permitem determinar onde seu aplicativo deve aparecer.The tab context and scopes properties enable you to determine where your app must appear. Guias no team escopo ou podem groupchat ter mais de um contexto.Tabs in the team or groupchat scope can have more than one context. A seguir estão os valores da propriedade da qual você pode usar todos ou context alguns dos valores:Following are the values for the context property from which you can use all or some of the values:

ValorValue DescriçãoDescription
channelTabchannelTab Uma guia no header de um canal de equipe.A tab in the header of a team channel.
privateChatTabprivateChatTab Uma guia no header de um chat de grupo entre um conjunto de usuários que não está no contexto de uma equipe ou reunião.A tab in the header of a group chat between a set of users not in the context of a team or meeting.
meetingChatTabmeetingChatTab Uma guia no header de um chat de grupo entre um conjunto de usuários no contexto de uma reunião agendada.A tab in the header of a group chat between a set of users in the context of a scheduled meeting.
meetingDetailsTabmeetingDetailsTab Uma guia no header da exibição de detalhes da reunião do calendário.A tab in the header of the meeting details view of the calendar.
meetingSidePanelmeetingSidePanel Um painel na reunião foi aberto por meio da barra unificada (U-bar).An in-meeting panel opened via the unified bar (U-bar).
meetingStagemeetingStage Um aplicativo do sidepanel pode ser compartilhado no estágio de reunião.An app from the sidepanel can be shared to the meeting stage.

Observação

Context atualmente, não há suporte para clientes móveis.Context property is currently not supported on mobile clients.

Configurar seu aplicativo para cenários de reuniãoConfigure your app for meeting scenarios

Observação

  • Para que seu aplicativo seja visível na galeria de guias, ele deve dar suporte a guias configuráveis e ao escopo de chat de grupo.For your app to be visible in the tab gallery it must support configurable tabs and the group chat scope.
  • Os clientes móveis suportam guias somente em estágios pré e pós-reunião.Mobile clients support tabs only in pre and post meeting stages.
  • As experiências na reunião que estão na caixa de diálogo e na guia da reunião atualmente não são suportadas em clientes móveis.The in-meeting experiences that is in-meeting dialog box and tab is currently not supported on mobile clients. Para obter mais informações, consulte diretrizes para guias em dispositivos móveis ao criar suas guias para dispositivos móveis.For more information, see guidance for tabs on mobile when creating your tabs for mobile.

Antes de uma reuniãoBefore a meeting

Antes de uma reunião, os usuários podem adicionar guias, bots e extensões de mensagens a uma reunião.Before a meeting, users can add tabs, bots and messaging extensions to a meeting. Os usuários com funções de organizador e apresentador podem adicionar guias a uma reunião.Users with organizer and presenter roles can add tabs to a meeting.

Para adicionar uma guia a uma reuniãoTo add a tab to a meeting

  1. Em seu calendário, selecione uma reunião à qual deseja adicionar uma guia.In your calendar, select a meeting to which you want to add a tab.

  2. Selecione a guia Detalhes e selecione maisSelect the Details tab and select plus Plus button.. A galeria de guias é exibida.The tab gallery appears.

    Experiência de pré-reunião

  3. Na galeria de guias, selecione o aplicativo que você deseja adicionar e siga as etapas conforme necessário.In the tab gallery, select the app that you want to add and follow the steps as required. O aplicativo é instalado como uma guia.The app is installed as a tab.

    Observação

    Atualmente, na guia reuniões, não há suporte para obter detalhes da reunião e informações dos participantes.Currently, in meetings tab, getting meeting details and participant information is not supported.

Para adicionar uma extensão de mensagens a uma reuniãoTo add a messaging extension to a meeting

  1. Selecione as releições ou o menu de estouro ●●● localizado na área de mensagem de redação no chat.Select the ellipses or overflow menu ●●● located in the compose message area in the chat.
  2. Selecione o aplicativo que você deseja adicionar e siga as etapas conforme necessário.Select the app that you want to add and follow the steps as required. O aplicativo é instalado como uma extensão de mensagens.The app is installed as a messaging extension.

Para adicionar um bot a uma reuniãoTo add a bot to a meeting

Em um chat de reunião, insira @ a chave e selecione Obter bots.In a meeting chat enter the @ key and select Get bots.

Observação

  • A identidade do usuário deve ser confirmada usando Guias SSO.The user identity must be confirmed using Tabs SSO. Após a autenticação, o aplicativo pode recuperar a função de usuário usando a GetParticipant API.After authentication, the app can retrieve the user role using the GetParticipant API.
  • Com base na função de usuário, o aplicativo tem a capacidade de fornecer experiências específicas de função.Based on the user role, the app has the capability to provide role specific experiences. Por exemplo, um aplicativo de sondagem permite que apenas organizadores e apresentadores criem uma nova sondagem.For example, a polling app allows only organizers and presenters to create a new poll.
  • As atribuições de função podem ser alteradas enquanto uma reunião está em andamento.Role assignments can be changed while a meeting is in progress. Para obter mais informações, consulte funções em uma reunião do Teams.For more information, see roles in a Teams meeting.

Durante uma reuniãoDuring a meeting

sidePanelsidePanel

Com o sidePanel, você pode personalizar experiências em uma reunião que permitem que organizadores e apresentadores tenham diferentes tipos de exibição e ações.With the sidePanel, you can customize experiences in a meeting that enable organizers and presenters to have different set of views and actions. No manifesto do aplicativo, você deve adicionar sidePanel à matriz de contexto.In your app manifest, you must add sidePanel to the context array. Na reunião e em todos os cenários, o aplicativo é renderizado em uma guia na reunião que tem 320 pixels de largura.In the meeting and in all scenarios, the app is rendered in an in-meeting tab that is 320 pixels in width. Para obter mais informações, consulte Interface FrameContext.For more information, see FrameContext interface.

Para usar a userContext API para rotear solicitações de acordo, consulte Teams SDK.To use the userContext API to route requests accordingly, see Teams SDK. Consulte Fluxo de autenticação do Teams para guias.See Teams authentication flow for tabs. O fluxo de autenticação para guias é muito semelhante ao fluxo de autenticação para sites.Authentication flow for tabs is very similar to the auth flow for websites. Portanto, as guias podem usar o OAuth 2.0 diretamente.So tabs can use OAuth 2.0 directly. Consulte a plataforma de identidade da Microsoft e o fluxo de código de autorização do OAuth 2.0.See, Microsoft identity platform and OAuth 2.0 authorization code flow.

A extensão de mensagens funciona conforme o esperado quando um usuário está em uma exibição em reunião e o usuário pode postar cartões de extensão de mensagem de composição.Messaging extension works as expected when a user is in an in-meeting view and the user can post compose message extension cards. AppName in-meeting é uma dica de ferramenta que informa o nome do aplicativo na U-bar de reunião.AppName in-meeting is a tooltip that states the app name in-meeting U-bar.

Observação

Use a versão 1.7.0 ou superior do SDKdo Teams, pois as versões anteriores a ele não suportam o painel lateral.Use version 1.7.0 or higher of Teams SDK, as versions prior to it do not support the side panel.

Caixa de diálogo na reuniãoIn-meeting dialog

A caixa de diálogo na reunião pode ser usada para envolver os participantes durante a reunião e coletar informações ou comentários durante a reunião.The in-meeting dialog box can be used to engage participants during the meeting and collect information or feedback during the meeting. Use a NotificationSignal API para sinalizar que uma notificação de bolha deve ser disparada.Use the NotificationSignal API to signal that a bubble notification must be triggered. Como parte da carga da solicitação de notificação, inclua a URL onde o conteúdo a ser mostrado está hospedado.As part of the notification request payload, include the URL where the content to be shown is hosted.

A caixa de diálogo na reunião não deve usar o módulo de tarefa.In-meeting dialog must not use task module. O módulo de tarefa não é invocado em um chat de reunião.Task module is not invoked in a meeting chat. Uma URL de recurso externo é usada para exibir a bolha de conteúdo em uma reunião.An external resource URL is used to display content bubble in a meeting. Você pode usar o submitTask método para enviar dados em um chat de reunião.You can use the submitTask method to submit data in a meeting chat.

Observação

  • Você deve invocar a função submitTask() para descartar automaticamente depois que um usuário realizar uma ação no web-view.You must invoke the submitTask() function to dismiss automatically after a user takes an action in the web-view. Esse é um requisito para envio de aplicativo.This is a requirement for app submission. Para obter mais informações, consulte Módulo de tarefas do SDK do Teams.For more information, see Teams SDK task module.
  • Se você quiser que seu aplicativo suporte usuários anônimos, sua carga inicial de solicitação de invocação deve depender dos metadados de solicitação no objeto, não from.id from nos from.aadObjectId metadados de solicitação.If you want your app to support anonymous users, your initial invoke request payload must rely on the from.id request metadata in the from object, not the from.aadObjectId request metadata. from.id é a ID do usuário e é a ID do from.aadObjectId Azure Active Directory (AAD) do usuário.from.id is the user ID and from.aadObjectId is the Azure Active Directory (AAD) ID of the user. Para obter mais informações, consulte using task modules in tabs e create and send the task module.For more information, see using task modules in tabs and create and send the task module.

Compartilhar em estágioShare to stage

Observação

  • Esse recurso está disponível apenas na visualização do desenvolvedor.This capability is currently available in developer preview only.
  • Para usar esse recurso, o aplicativo deve dar suporte a um sidepanel na reunião.To use this feature, the app must support an in-meeting sidepanel.

Esse recurso oferece aos desenvolvedores a capacidade de compartilhar um aplicativo no estágio de reunião.This capability gives developers the ability to share an app to the meeting stage. Habilitando o compartilhamento para o estágio de reunião, os participantes da reunião podem colaborar em tempo real.By enabling share to the meeting stage, meeting participants can collaborate in real-time.

O contexto necessário está meetingStage no manifesto do aplicativo.The required context is meetingStage in the app manifest. Um pré-requisito para isso é ter o meetingSidePanel contexto.A prerequisite for this is to have the meetingSidePanel context. Isso habilita o botão Compartilhar no sidepanel conforme solicitado na imagem a seguir:This enables the Share button in the sidepanel as depecited in the following image:

share_to_stage_during_meeting experiência

A alteração de manifesto necessária para habilitar esse recurso é a seguinte:The manifest change that is needed to enable this capability is as follows:


"configurableTabs": [
    {
      "configurationUrl": "https://contoso.com/teamstab/configure",
      "canUpdateConfiguration": true,
      "scopes": [
        "groupchat"
      ],
      "context":[
        
        "meetingSidePanel",
        "meetingStage"
     ]
    }
  ]

Após uma reuniãoAfter a meeting

As configurações pós-reunião e pré-reunião são equivalentes.The post-meeting and pre-meeting configurations are equivalent.

Exemplo de códigoCode sample

Exemplo de nomeSample name DescriçãoDescription .NET.NET Node.jsNode.js
Extensibilidade de reuniõesMeetings extensibility Exemplo de extensibilidade de reunião do Microsoft Teams para tokens de passagem.Microsoft Teams meeting extensibility sample for passing tokens. ViewView
Bot de bolha de conteúdo de reuniãoMeeting content bubble bot Exemplo de extensibilidade de reunião do Microsoft Teams para interagir com o bot de bolha de conteúdo em uma reunião.Microsoft Teams meeting extensibility sample for interacting with content bubble bot in a meeting. ViewView ViewView
Meeting SidePanelMeeting SidePanel Exemplo de extensibilidade de reunião do Microsoft Teams para iteração com o painel lateral na reunião.Microsoft Teams meeting extensibility sample for iteracting with the side panel in-meeting. ViewView

Confira tambémSee also