Enviar Mensagens Proativas
Uma mensagem proativa é qualquer mensagem enviada por um bot que não esteja em resposta a uma solicitação de um usuário que inclui mensagens, como:
- Mensagem de boas-vindas
- Notificações
- Mensagens agendadas
Este guia passo a passo ajuda você a enviar uma mensagem proativa de um bot. Você verá as seguintes saídas:
Mensagem de olá proativa no chat.

Mensagem hello proativa como um Cartão Adaptável.

Pré-requisitos
Certifique-se de instalar o seguinte:
- Visual Studio 2019
- ASP.NET desenvolvimento web ou carga de trabalho de desenvolvimento multiplataforma do .NET Core
- ngrok: um aplicativo multiplataforma que permite expor um servidor de desenvolvimento local à Internet com esforço mínimo
- Obter um locatário Teams desenvolvedor gratuito
Configurar o ambiente local
Baixe o código de exemplo (arquivo Zip) e extraia os arquivos.
Vá para os arquivos extraídos e clique duas vezes em ProactiveBot.csproj. A solução é aberta Visual Studio.
No Visual Studio, clique com o botão direito do mouse no projeto (ProactiveBot) e selecione Compilar para compilar a solução.

Solução de Problemas
Se você receber o erro Não é possível localizar o pacote, siga estas etapas:
- Vá para Ferramentas > NuGet Gerenciador de Pacotes > Gerenciador de Pacotes Configurações.
- Na janela Opções exibida, selecione NuGet Gerenciador de Pacotes > Empacote de Fontes.
- Selecione Adicionar.
- Insira
nuget.orgo Nome e oshttps://api.nuget.org/v3/index.jsoncampos Origem . - Selecione Atualizar e OK.
- Recompile seu projeto.
Descompacte para instalar o ngrok.
- Windows: clique duas vezes
ngrok.zip. - Linux ou OS X: descompacte o ngrok do terminal e execute o
unzip /path/to/ngrok.zipcomando.
- Windows: clique duas vezes
Execute o ngrok na linha de comando com os seguintes argumentos:
ngrok http 3978 --host-header=localhostCopie a URL do ngrok (conforme realçado na imagem) para obter mais referências como URL base do ngrok nas próximas etapas.

Criar e instalar Teams aplicativo
Vá para Teams > App Studio e importe
AppManifest.zipo arquivo disponível no código de exemplo baixado (arquivo Zip).
Selecione Configuração de > Bots.

Na janela Configurar um bot, insira Nome (por exemplo, Demonstração de Mensagem Proativa).
Selecione Pessoal e, em seguida, selecione Criar bot para criar o bot.

Acrescente /api/messages à URL base do ngrok (que você copiou) e defina-a como o endereço do ponto de extremidade do Bot. Sua URL teria esta aparência:
https://yourngrokdomain.ngrok.io/api/messages.
Aguarde alguns segundos para que as alterações entre em vigor.
Se estiver demorando mais, selecione Guias e , em seguida, a seção Bots para forçar a atualização.
Selecione Gerar nova senha para gerar a nova Senha do Aplicativo e copiá-la.

Vá para Visual Studio e abra o arquivo appsettings.json. Cole a senha como o valor para
MicrosoftAppPassword.Vá para o App Studio e copie a ID do aplicativo.

Vá para Visual Studio e abra o arquivo appsettings.json. Cole a ID do Aplicativo como o valor para
MicrosoftAppId. Vocêappsettings.jsonterá os seguintes valores de configuração:
Pressione F5 ou selecione IIS Express para executar o código.

O exemplo de mensagem proativa correspondente é exibido:

Vá para Testar e distribua > Instalar para instalar o mesmo aplicativo novamente.

Selecione a
http://localhost:3978/api/notifyURL para obter uma mensagem de olá proativa no chat.
Vá para Teams. Você receberá uma mensagem de olá proativa do bot quando a instalação for bem-sucedida.

Adicionar Cartão Adaptável à mensagem proativa
Em Visual Studio, interrompa o processo de depuração.

Clique com o botão direito do mouse em Dependências e selecione Gerenciar NuGet Pacotes.

No NuGet ProactiveBot, selecione Procurar e pesquisar AdaptiveCards.
Selecionar Instalar.

Abra o arquivo NotifyController.cs e substitua
BotCallbacko código existente pelo seguinte código para enviar a mensagem cartão adaptável:private async Task BotCallback(ITurnContext turnContext, CancellationToken cancellationToken) { AdaptiveCard card = new AdaptiveCard(new AdaptiveSchemaVersion(1, 0)); card.Body.Add(new AdaptiveTextBlock() { Text = "Proactive Hello", Size = AdaptiveTextSize.ExtraLarge }); card.Body.Add(new AdaptiveImage() { Url = new Uri("http://adaptivecards.io/content/cats/1.png") }); Attachment attachment = new Attachment() { ContentType = AdaptiveCard.ContentType, Content = card }; await turnContext.SendActivityAsync(MessageFactory.Attachment(attachment)); }Passe o mouse sobre a linha vermelha ondulada e selecione usando AdaptiveCards para resolver os erros.

Pressione F5 para executar o código.
Vá para Teams e desinstale seu aplicativo.

Reinstale o mesmo aplicativo para obter o
conversationUpdateevento.Selecione a URL [api/notify]
(http://localhost:3978/api/notify)para obter uma mensagem hello proativa no Cartão Adaptável.
Desafio completo
Você conseguiu algo assim? É assim que a mensagem hello proativa no Cartão Adaptável é exibida:

Parabéns!
Você concluiu o cenário.
- Você pode enviar notificações diariamente ou solicitar comentários do usuário periodicamente.
- Manipule os limites de limitação para evitar várias notificações.
Tem algum problema com essa seção? Se tiver, envie seus comentários para que possamos melhorar esta seção.