Запуск и отладка приложения Microsoft TeamsRun and debug your Microsoft Teams app

Приложения Microsoft Teams могут содержать одну или несколько возможностей, и способы их запуска и даже размещения могут отличаться.Microsoft Teams apps can contain one or more capabilities, and the ways to run or even host them may be different. В общем случае для запуска приложения Microsoft Teams можно использовать следующие способы отладки:When it comes to debugging, in general, we have the following ways to run your Microsoft Teams app:

  • Чисто локальный для Боты, вы можете протестировать интерфейс в эмуляторе Bot.Purely local For bots, you can test your experience in the Bot Emulator. Для другого содержимого можно выполнить локальную работу в браузере и адрес содержимого с помощью http://localhost.For other content, you can run locally in your browser and address content through http://localhost.
  • Локально размещенные в Teams это включает в себя локальное выполнение с туннелированием программного обеспечения и Создание пакета для отправки в Teams.Locally hosted, in Teams This involves running locally with tunneling software and creating a package to upload into Teams. Это позволяет легко запускать и отлаживать приложение в клиенте Teams.This allows you to easily run and debug your app within the Teams client.
  • Размещение в облаке, в Teams Это действительно имитирует (или) производственную поддержку для приложения Teams.Cloud-hosted, in Teams This truly simulates (or is) production-level support for a Teams app. Он включает в себя отправку решения на ваш внешний доступный сервер или облачный поставщик (мы рекомендуем Azure) и создаем пакет для отправки в 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.

Для тестирования локальных или локальных команд вы запускаете работу с собственного компьютера.For purely local or local Teams testing, you run the experience from your own computer. Это позволяет реально компилировать и запускать их в среде IDE и использовать все преимущества таких приемов, как точки останова и отладка.This allows you to actually compile and run within your IDE, and take full advantage of such techniques as breakpoints and step debugging. При отладке и тестировании масштаба предприятия рекомендуется следовать собственным рекомендациям, чтобы обеспечить поддержку тестирования, промежуточного хранения и развертывания с помощью собственных процессов.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.

В общем случае рекомендуется использовать несколько манифестов и пакетов, чтобы обеспечить поддержку разделения между рабочими службами и службами разработки.In general we recommend you use multiple manifests and packages to allow you to maintain separation between production and development services. Например, вы можете зарегистрировать отдельный Боты разработки и рабочую среду и создать соответствующие пакеты для их отправки в тестовой среде.For example, you might choose to register separate development and production bots and create appropriate packages to upload them in your testing environment. Мы также рекомендуем отправить и протестировать производственный пакет перед отправкой приложения для публикации в магазине приложений или распространения на клиентов.We also recommend you upload and test your production package before submitting your app for publishing in our app store, or distributing to customers.

Чисто локальноPurely local

Примечание

Таким образом, вы не предоставляете доступ к функциям приложения Teams или функциям ленты, специфичным для Teams, например, к вызовам из списков и другим функциональным возможностям, зависящим от канала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. Кроме того, в пошаговом эмуляторе ленты может быть разрешено использовать некоторые возможности, которые могут не работать при работе в 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.

Ваш Bot можно запустить в эмуляторе Bot.Your bot can be run within the Bot Emulator. Это позволяет тестировать основную логику ленты, просматривать грубую структуру сообщений и выполнять простые тесты.This enables you to test some of the core logic of the bot, see a rough layout of messages, and perform simple tests. Необходимо выполнить следующие шаги.Here are the steps:

  • Запуск кода на локальном компьютереRun the code locally
  • Запустите эмулятор ленты и задайте 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
  • Оставьте поле идентификатор приложения Microsoft и пароль Microsoft App пустыми, чтобы они были согласованы с переменными среды по умолчанию.Leave the Microsoft app ID and Microsoft app password blank, to match the default environment variables.

Локально размещеноLocally hosted

Так как Microsoft Teams является полностью облачным продуктом, ему необходимы все службы, к которым он обращается, с помощью конечных точек HTTPS.Because Microsoft Teams is an entirely cloud-based product, it requires all services it accesses to be available publicly using HTTPS endpoints. Таким образом, чтобы приложение работало в Teams, необходимо либо опубликовать код в выбранном вами облаке, либо сделать локальный экземпляр запущенным извне.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. Мы можем выполнить Последнее действие с туннелированием программного обеспечения.We can do the latter with tunneling software.

Несмотря на то, что вы можете использовать любое средство выбора, мы используем и рекомендуем ngrok, который создает URL-адрес с внешним адресом для порта, открываемого локально на вашем компьютере.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. Чтобы настроить ngrok в процессе подготовки к запуску приложения Microsoft Teams, выполните следующие действия:To set up ngrok in preparation for running your Microsoft Teams app locally:

  • В приложении терминала перейдите к каталогу, в котором установлен ngrok. exe.In a terminal application, go the directory where you have ngrok.exe installed. Чтобы избежать этого действия, можно добавить его в качестве переменной пути.You may want to add it as a path variable to avoid this step.
  • Запустите, ngrok http 3978 --host-header=localhost:3978например, или замените номер порта по мере необходимости.Run, for example, ngrok http 3978 --host-header=localhost:3978, or replace the port number as needed.

Будет запущен ngrok для прослушивания указанного порта.This launches ngrok to listen on the port you specify. В качестве возврата вы получите URL-адрес с внешним адресом, допустимый до тех пор, пока работает ngrok.In return, it gives you an externally addressable URL, valid for as long as ngrok is running.

Примечание

Если остановить и перезапустить ngrok, URL-адрес изменится.If you stop and restart ngrok, the URL changes.

Чтобы использовать ngrok в проекте и в зависимости от используемых возможностей, необходимо заменить все URL-ссылки в файле кода, конфигурации и манифеста. JSON, чтобы использовать эту конечную точку 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.

Например, для Боты, зарегистрированного в Microsoft Bot Framework, обновите конечную точку обмена сообщениями ленты, чтобы использовать эту новую конечную точку ngrok.For example, for bots registered in the Microsoft Bot Framework, update the bot's messaging endpoint to use this new ngrok endpoint. Например, https://2d1224fb.ngrok.io/api/messages.For example, https://2d1224fb.ngrok.io/api/messages. Вы можете проверить, работает ngrok, проверив ответ Bot в окне тест чата портала Bot Framework.You can validate that ngrok is working by testing bot response in the Bot Framework portal's Test chat window. (Как и в случае с эмулятором, эта проверка не позволяет получить доступ к функциям, зависящим от Teams.)(Again, like the emulator, this test doesn't allow you to access Teams-specific functionality.)

Примечание

Чтобы обновить конечную точку обмена сообщениями для Bot, необходимо использовать среду Bot.To update the messaging endpoint for a bot, you must use the Bot Framework. Щелкните элемент Bot в списке боты в Bot Framework.Click on your bot in your list of bots in Bot Framework. Нет необходимости переносить Bot в Microsoft Azure.You do not need to migrate your bot to Microsoft Azure. Вы также можете обновить конечную точку обмена сообщениями в приложении App Studio.You can also update your messaging endpoint through App Studio.

Размещение в облакеCloud-hosted

Вы можете использовать любую внешнюю службу для размещения кода разработки и рабочего кода, а также конечных точек HTTPS.You can use any externally addressable service to host your development and production code and their HTTPS endpoints. Не существует ожидания того, что ваши возможности находятся в одной службе.There is no expectation that your capabilities reside on the same service. Для этого необходимо, чтобы все домены, к которым обращаются из приложений Microsoft Teams, были указаны в validDomains объекте в файле 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.

Примечание

Чтобы обеспечить надежную среду, следует явно указать конкретные доменные и поддомены, на которые вы ссылаетесь, и эти домены должны находиться в вашем элементе управления.To ensure a secure environment, be explicit about the exact domain and subdomains you reference, and those domains must be in your control. Например, *.azurewebsites.net не рекомендуется contoso.azurewebsites.net .For example, *.azurewebsites.net would not be recommended, but contoso.azurewebsites.net would.

Загрузка и запускLoading and running

В общем случае для загрузки и запуска взаимодействия в Microsoft Teams необходимо создать пакет и отправить его в Teams, выполнив следующие рекомендации: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: