Exécuter et déboguer votre application Microsoft teamsRun and debug your Microsoft Teams app

Les applications Microsoft teams peuvent contenir une ou plusieurs fonctionnalités, et les moyens de les exécuter ou même les héberger peuvent être différents.Microsoft Teams apps can contain one or more capabilities, and the ways to run or even host them may be different. En ce qui concerne le débogage, en général, nous avons les moyens d’exécuter votre application Microsoft teams de la manière suivante :When it comes to debugging, in general, we have the following ways to run your Microsoft Teams app:

  • Uniquement pour les robots, vous pouvez tester votre expérience dans l’émulateur de robot.Purely local For bots, you can test your experience in the Bot Emulator. Pour d’autres types de contenu, vous pouvez exécuter localement dans votre navigateur et http://localhostadresser du contenu via.For other content, you can run locally in your browser and address content through http://localhost.
  • Hébergé localement, dans teams , cela implique l’exécution locale du logiciel de tunneling et la création d’un package à charger dans Teams.Locally hosted, in Teams This involves running locally with tunneling software and creating a package to upload into Teams. Cela vous permet d’exécuter et de déboguer facilement votre application dans le client Teams.This allows you to easily run and debug your app within the Teams client.
  • Hébergé sur le Cloud, dans teams Cela simule réellement (ou est) une prise en charge au niveau de la production pour une application Teams.Cloud-hosted, in Teams This truly simulates (or is) production-level support for a Teams app. Il implique le téléchargement de votre solution sur votre serveur ou votre fournisseur de Cloud accessible en externe (nous vous recommandons Azure, bien sûr) et la création d’un package à charger dans 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.

Pour le test des équipes de façon purement locale ou locale, vous exécutez l’expérience à partir de votre propre ordinateur.For purely local or local Teams testing, you run the experience from your own computer. Cela vous permet de compiler et d’exécuter réellement dans votre IDE et de tirer pleinement parti de ces techniques comme points d’arrêt et débogage pas à pas.This allows you to actually compile and run within your IDE, and take full advantage of such techniques as breakpoints and step debugging. Pour le débogage et le test de l’envergure de production, nous vous recommandons de suivre les instructions de votre entreprise pour vous assurer de pouvoir prendre en charge les tests, la mise en œuvre et le déploiement par le biais de vos propres processus.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.

En général, nous vous recommandons d’utiliser plusieurs manifestes et packages pour vous permettre de maintenir la séparation entre les services de production et de développement.In general we recommend you use multiple manifests and packages to allow you to maintain separation between production and development services. Par exemple, vous pouvez choisir d’enregistrer des robots de développement et de production distincts et de créer des packages appropriés pour les charger dans votre environnement de test.For example, you might choose to register separate development and production bots and create appropriate packages to upload them in your testing environment. Nous vous recommandons également de charger et de tester votre package de production avant d’envoyer votre application pour la publication dans notre magasin d’applications ou de la distribuer à des clients.We also recommend you upload and test your production package before submitting your app for publishing in our app store, or distributing to customers.

Purement localPurely local

Notes

En procédant ainsi, vous ne pouvez pas accéder à la fonctionnalité de l’application teams ou aux fonctions de bot propres à Teams, telles que les appels de liste et d’autres fonctionnalités propres au 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. De plus, certaines fonctionnalités peuvent être autorisées par l’infrastructure de robot dans l’émulateur de bot qui peut ne pas fonctionner lors de l’exécution dans 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.

Votre robot peut être exécuté dans l’émulateur bot.Your bot can be run within the Bot Emulator. Cela vous permet de tester une partie de la logique de base du bot, de voir une disposition approximative des messages et d’effectuer des tests simples.This enables you to test some of the core logic of the bot, see a rough layout of messages, and perform simple tests. Voici les étapes à suivre :Here are the steps:

  • Exécuter le code localementRun the code locally
  • Lancez l’émulateur bot et définissez l’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
  • Ne renseignez pas le champ ID de l’application Microsoft et mot de passe Microsoft App pour qu’ils correspondent aux variables d’environnement par défaut.Leave the Microsoft app ID and Microsoft app password blank, to match the default environment variables.

Hébergé localementLocally hosted

Étant donné que Microsoft teams est un produit entièrement basé sur le Cloud, il faut que tous les services auxquels il accède soient accessibles au public à l’aide de points de terminaison HTTPs.Because Microsoft Teams is an entirely cloud-based product, it requires all services it accesses to be available publicly using HTTPS endpoints. Par conséquent, pour permettre à votre application de fonctionner dans Teams, vous devez publier le code dans le nuage de votre choix ou rendre notre instance en cours d’exécution accessible en externe.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. Nous pouvons le faire avec le logiciel de tunneling.We can do the latter with tunneling software.

Bien que vous puissiez utiliser n’importe quel outil de choix, nous utilisons et recommandons ngrok, qui crée une URL adressable en externe pour un port que vous ouvrez localement sur votre ordinateur.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. Pour configurer ngrok en vue de l’exécution locale de votre application Microsoft teams :To set up ngrok in preparation for running your Microsoft Teams app locally:

  • Dans une application Terminal, accédez au répertoire dans lequel vous avez installé ngrok. exe.In a terminal application, go the directory where you have ngrok.exe installed. Vous pouvez l’ajouter en tant que variable PATH pour éviter cette étape.You may want to add it as a path variable to avoid this step.
  • Exécutez, par exemple ngrok http 3978 --host-header=localhost:3978, ou remplacez le numéro de port selon vos besoins.Run, for example, ngrok http 3978 --host-header=localhost:3978, or replace the port number as needed.

Cela lance ngrok pour écouter sur le port que vous spécifiez.This launches ngrok to listen on the port you specify. En retour, elle vous fournit une URL adressable de manière externe, valide pendant le temps que ngrok est en cours d’exécution.In return, it gives you an externally addressable URL, valid for as long as ngrok is running.

Notes

Si vous arrêtez et redémarrez ngrok, l’URL change.If you stop and restart ngrok, the URL changes.

Pour utiliser ngrok dans votre projet et selon les fonctionnalités que vous utilisez, vous devez remplacer toutes les références d’URL dans votre code, votre configuration et/ou le fichier manifest. JSON pour utiliser ce point de terminaison d’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.

Par exemple, pour les robots enregistrés dans Microsoft bot Framework, mettez à jour le point de terminaison de messagerie du bot pour utiliser ce nouveau point de terminaison ngrok.For example, for bots registered in the Microsoft Bot Framework, update the bot's messaging endpoint to use this new ngrok endpoint. Par exemple, https://2d1224fb.ngrok.io/api/messages.For example, https://2d1224fb.ngrok.io/api/messages. Vous pouvez vérifier que ngrok fonctionne en testant la réponse bot dans la fenêtre conversation de test du portail de l’infrastructure bot.You can validate that ngrok is working by testing bot response in the Bot Framework portal's Test chat window. (Encore une fois, à l’instar de l’émulateur, ce test ne vous permet pas d’accéder aux fonctionnalités spécifiques des équipes.)(Again, like the emulator, this test doesn't allow you to access Teams-specific functionality.)

Notes

Pour mettre à jour le point de terminaison de messagerie pour un bot, vous devez utiliser l’infrastructure bot.To update the messaging endpoint for a bot, you must use the Bot Framework. Cliquez sur votre robot dans la liste des robots dans l’infrastructure de robot.Click on your bot in your list of bots in Bot Framework. Vous n’avez pas besoin de migrer votre bot vers Microsoft Azure.You do not need to migrate your bot to Microsoft Azure. Vous pouvez également mettre à jour votre point de terminaison de messagerie via l' application Studio.You can also update your messaging endpoint through App Studio.

Hébergé dans le cloudCloud-hosted

Vous pouvez utiliser n’importe quel service adressable en externe pour héberger votre code de développement et de production, ainsi que leurs points de terminaison HTTPs.You can use any externally addressable service to host your development and production code and their HTTPS endpoints. Il n’y a aucune attente que vos fonctionnalités résident sur le même service.There is no expectation that your capabilities reside on the same service. Nous exigeons que tous les domaines consultés à partir de vos applications Microsoft teams validDomains soient affichés dans l’objet dans le fichier 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.

Notes

Pour garantir un environnement sécurisé, soyez explicite sur le domaine et les sous-domaines exacts que vous référencez, et ces domaines doivent être dans votre contrôle.To ensure a secure environment, be explicit about the exact domain and subdomains you reference, and those domains must be in your control. Par exemple, *.azurewebsites.net n’est pas recommandé, mais contoso.azurewebsites.net le ferait.For example, *.azurewebsites.net would not be recommended, but contoso.azurewebsites.net would.

Chargement et exécutionLoading and running

En général, pour charger et exécuter votre expérience dans Microsoft Teams, vous devez créer un package et le charger dans teams à l’aide des instructions suivantes :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: