Executar e depurar seu aplicativo Microsoft TeamsRun and debug your Microsoft Teams app

Os aplicativos do Microsoft Teams podem conter um ou mais recursos, e as maneiras de executá-los ou mesmo hospedá-los podem ser diferentes.Microsoft Teams apps can contain one or more capabilities, and the ways to run or even host them may be different. Quando se trata de depuração, em geral, temos as seguintes maneiras de executar o aplicativo Microsoft Teams:When it comes to debugging, in general, we have the following ways to run your Microsoft Teams app:

  • Puramente local para bots, você pode testar sua experiência no emulador de bot.Purely local For bots, you can test your experience in the Bot Emulator. Para outro conteúdo, você pode executar localmente no seu navegador e lidar com o http://localhostconteúdo por meio do.For other content, you can run locally in your browser and address content through http://localhost.
  • Hospedado localmente, no Teams , isso envolve a execução local com o software de encapsulamento e a criação de um pacote para carregar no Microsoft Teams.Locally hosted, in Teams This involves running locally with tunneling software and creating a package to upload into Teams. Isso permite que você execute e depure facilmente o aplicativo no cliente Teams.This allows you to easily run and debug your app within the Teams client.
  • Hospedado na nuvem, no Teams Isso verdadeiramente simula (ou é) o suporte de nível de produção para um aplicativo do teams.Cloud-hosted, in Teams This truly simulates (or is) production-level support for a Teams app. Ele envolve carregar sua solução para seu servidor acessível externamente ou provedor de nuvem de escolha (recomendamos o Azure, naturalmente) e criando um pacote para carregar no Teams.It involves uploading your solution to your externally accessible server or cloud provider of choice (we recommend Azure, of course) and creating a package to upload into Teams.

Para testes de equipes puramente locais ou locais, você executa a experiência do seu próprio computador.For purely local or local Teams testing, you run the experience from your own computer. Isso permite que você realmente compile e execute dentro do seu IDE e tire o máximo proveito dessas técnicas como pontos de interrupção e depuração de etapa.This allows you to actually compile and run within your IDE, and take full advantage of such techniques as breakpoints and step debugging. Para depuração e teste de escala de produção, recomendamos que você siga as diretrizes de sua empresa para garantir que você possa dar suporte ao teste, preparação e implantação por meio de seus próprios processos.For production-scale debugging and testing, we recommend that you follow your own company guidelines to ensure you are able to support testing, staging, and deployment through your own processes.

Em geral, recomendamos que você use vários manifestos e pacotes para permitir que você mantenha a separação entre serviços de produção e desenvolvimento.In general we recommend you use multiple manifests and packages to allow you to maintain separation between production and development services. Por exemplo, você pode optar por registrar bots de desenvolvimento e produção separados e criar pacotes apropriados para carregá-los no seu ambiente de teste.For example, you might choose to register separate development and production bots and create appropriate packages to upload them in your testing environment. Recomendamos também carregar e testar seu pacote de produção antes de enviar o aplicativo para publicação em nossa loja de aplicativos ou distribuir para os clientes.We also recommend you upload and test your production package before submitting your app for publishing in our app store, or distributing to customers.

Puramente localPurely local

Observação

A execução desse modo não dá acesso à funcionalidade do aplicativo do teams ou às funções de bot específicas da equipe, como chamadas de lista e outros recursos específicos do canal.Running this way does not give you access to Teams app functionality or Teams-specific bot functions like roster calls and other channel-specific functionality. Além disso, alguns recursos podem ser permitidos pela estrutura de bot no emulador de bot que podem não funcionar durante a execução no Microsoft Teams.In addition, some capabilities may be allowed by the Bot Framework in the Bot Emulator that might not function when running in Microsoft Teams.

Seu bot pode ser executado no emulador de bot.Your bot can be run within the Bot Emulator. Isso permite testar algumas das principais lógicas do bot, ver um layout áspero de mensagens e realizar testes simples.This enables you to test some of the core logic of the bot, see a rough layout of messages, and perform simple tests. Estas são as etapas:Here are the steps:

  • Executar o código localmenteRun the code locally
  • Inicie o emulador de bot e defina a URL:Launch the Bot Emulator and set the URL:
    • Node. js:http://localhost:3978/api/messagesNode.js: http://localhost:3978/api/messages
    • .NET/C#:http://localhost:3979/api/messages.NET/C#: http://localhost:3979/api/messages
  • Deixe em branco a ID do aplicativo Microsoft e a senha do Microsoft App para corresponder às variáveis de ambiente padrão.Leave the Microsoft app ID and Microsoft app password blank, to match the default environment variables.

Hospedado localmenteLocally hosted

Como o Microsoft Teams é um produto totalmente baseado em nuvem, ele exige todos os serviços que ele acessa para estar disponível publicamente usando pontos de extremidade HTTPS.Because Microsoft Teams is an entirely cloud-based product, it requires all services it accesses to be available publicly using HTTPS endpoints. Portanto, para permitir que seu aplicativo funcione no Teams, você precisa publicar o código na nuvem de sua escolha ou tornar nossa instância em execução externamente acessível.Therefore, to enable your app to work within Teams, you need to either publish the code to the cloud of your choice, or make our local running instance externally accessible. Podemos fazer o último com o software de encapsulamento.We can do the latter with tunneling software.

Embora você possa usar qualquer ferramenta de escolha, usamos e recomendamos o ngrok, que cria uma URL endereçável externamente para uma porta que você abre localmente no seu computador.Although you can use any tool of choice, we use and recommend ngrok, which creates an externally addressable URL for a port you open locally on your machine. Para configurar o ngrok em preparação para executar seu aplicativo do Microsoft Teams localmente:To set up ngrok in preparation for running your Microsoft Teams app locally:

  • Em um aplicativo de terminal, vá para o diretório onde você tem o ngrok. exe instalado.In a terminal application, go the directory where you have ngrok.exe installed. Talvez você queira adicioná-lo como uma variável de caminho para evitar esta etapa.You may want to add it as a path variable to avoid this step.
  • Executar, por exemplo, ngrok http 3978 --host-header=localhost:3978ou substituir o número da porta, conforme necessário.Run, for example, ngrok http 3978 --host-header=localhost:3978, or replace the port number as needed.

Isso inicia o ngrok para escutar na porta que você especificar.This launches ngrok to listen on the port you specify. Em retorno, ele fornece uma URL endereçável externamente, válida por enquanto o ngrok está em execução.In return, it gives you an externally addressable URL, valid for as long as ngrok is running.

Observação

Se você parar e reiniciar o ngrok, a URL será alterada.If you stop and restart ngrok, the URL changes.

Para usar o ngrok em seu projeto e dependendo dos recursos que você está usando, você deve substituir todas as referências de URL em seu código, configuração e/ou arquivo manifest. JSON para usar este ponto de extremidade de URL.To use ngrok in your project, and depending on the capabilities you are using, you must replace all URL references in your code, configuration, and/or manifest.json file to use this URL endpoint.

Por exemplo, para bots registrados no Microsoft bot Framework, atualize o ponto de extremidade de mensagens do bot para usar esse novo ponto de extremidade do ngrok.For example, for bots registered in the Microsoft Bot Framework, update the bot's messaging endpoint to use this new ngrok endpoint. Por exemplo, https://2d1224fb.ngrok.io/api/messages.For example, https://2d1224fb.ngrok.io/api/messages. Você pode validar que o ngrok está funcionando testando a resposta do bot na janela de chat de teste do portal da estrutura do bot.You can validate that ngrok is working by testing bot response in the Bot Framework portal's Test chat window. (Novamente, como o emulador, esse teste não permite acessar a funcionalidade específica da equipe.)(Again, like the emulator, this test doesn't allow you to access Teams-specific functionality.)

Observação

Para atualizar o ponto de extremidade de mensagens de um bot, você deve usar a estrutura do bot.To update the messaging endpoint for a bot, you must use the Bot Framework. Clique no bot na sua lista de bots no bot Framework.Click on your bot in your list of bots in Bot Framework. Você não precisa migrar o bot para o Microsoft Azure.You do not need to migrate your bot to Microsoft Azure. Você também pode atualizar seu ponto de extremidade de mensagens por meio do app Studio.You can also update your messaging endpoint through App Studio.

Hospedado na nuvemCloud-hosted

Você pode usar qualquer serviço endereçável externamente para hospedar seu código de desenvolvimento e de produção e seus pontos de extremidade HTTPS.You can use any externally addressable service to host your development and production code and their HTTPS endpoints. Não há expectativas de que seus recursos residem no mesmo serviço.There is no expectation that your capabilities reside on the same service. Exigimos que todos os domínios que estão sendo acessados a partir de seus aplicativos validDomains do Microsoft Teams sejam listados no objeto no arquivo manifest. JSON.We do require that all domains being accessed from your Microsoft Teams apps be listed in the validDomains object in the manifest.json file.

Observação

Para garantir um ambiente seguro, seja explícito sobre o domínio exato e os subdomínios que você referencia, e esses domínios devem estar no seu controle.To ensure a secure environment, be explicit about the exact domain and subdomains you reference, and those domains must be in your control. Por exemplo, *.azurewebsites.net não seria recomendável, mas contoso.azurewebsites.net Sim.For example, *.azurewebsites.net would not be recommended, but contoso.azurewebsites.net would.

Carregando e executandoLoading and running

Em geral, para carregar e executar sua experiência no Microsoft Teams, você precisa criar um pacote e carregá-lo no Teams, usando as seguintes orientações:In general, to load and run your experience within Microsoft Teams, you need to create a package and upload it into Teams, using the following guidance: