Советы по успешной отправке приложенияTips for a successful app submission

В этой статье рассматриваются распространенные причины, по которым отправленные приложения не прошли проверку.This article addresses common reasons submitted apps fail validation. Несмотря на то, что он не является исчерпывающим списком возможных проблем с вашим приложением, в этом руководстве увеличится вероятность того, что ваше приложение будет проходить в первый раз.While it's not intended to be an exhaustive list of all potential issues with your app, following this guide will increase the likelihood that your app submission will pass the first time. Для получения обширного списка политик проверки, Ознакомьтесь со статьей Политика сертификации коммерческих рынков .See Commercial marketplace certification policies for an extensive list of validation policies.

Примечание

Раздел 1140 относится только к Microsoft teams 1140,4 и [! важно!] устраняет функциональные требования для приложений Teams.Section 1140 is specific to Microsoft Teams and sub-section 1140.4 addresses functionality requirements for Teams apps.

Рекомендации по проверке & наиболее неудачные тестовые случаиValidation guidelines & most failed test cases

Общие сведения о ✅✅ General considerations

See also Раздел 100 — общие сведенияSee also Section 100 — General

  • Убедитесь, что вы используете пакет SDK для Microsoft Teamsверсии 1.4.1 или более поздней версии.Ensure you are using version 1.4.1 or later of the Microsoft Teams SDK.
  • Не вносите изменения в свое приложение во время выполнения процесса проверки.Don't make changes to your app while the validation process is in progress. Для этого потребуется полная повторная проверка приложения.Doing so will require a complete revalidation of your app.
  • Ваше приложение не должно отвечать на запросы, неожиданно завершать работу или содержать программные ошибки.Your app must not stop responding, end unexpectedly, or contain programming errors. Если возникла ошибка, приложение должно корректно завершать работу и предоставлять пользователю действительное сообщение переадресации.If an issue is encountered, your app should fail gracefully and provide a valid-way-forward message to the user.
  • Ваше приложение не должно автоматически скачивать, устанавливать или запускать исполняемый код в пользовательской среде.Your app must not automatically download, install, or launch any executable code in the user environment. Все загружаемые файлы должны искать явное разрешение пользователя.All downloads should seek explicit permission from the user.
  • Все материалы, которые вы связываете с вашим интерфейсом, такие как описания и документация по поддержке, должны быть точными.Any material that you associate with your experience, such as descriptions and support documentation, must be accurate. Описания и материалы должны быть написаны грамотно, без орфографических ошибок, с правильным использованием прописных букв и знаков препинания.Use correct spelling, capitalization, punctuation, and grammar in your descriptions and materials.
  • Предоставление справочных сведений и сведений о поддержке.Provide help and support information. Настоятельно рекомендуется, чтобы приложение включало ссылку Справка/вопросы и ответы для первого запуска интерфейса пользователя.It's highly recommended that your app include a help/FAQ link for the first-run user experience. Для всех персональных приложений рекомендуем использовать страницу справки в качестве личной вкладки для улучшения взаимодействия с пользователем.For all personal apps, we recommend providing your help page as a personal tab for a better user experience.
  • Приложения не должны принимать пользователя из Teams для основных пользовательских сценариев.Apps must not take the user out of Teams for core user scenarios. Использование модулей задач и вкладок рекомендуется для отображения сведений для пользователей в Teams.Using task modules/tabs is recommended to display information to users within Teams.
  • Увеличьте номер версии приложения в манифесте, если вы вносите изменения в манифест отправку.Increment your app version number in the manifest if you make any manifest changes to your submission.
  • Приложение не должно брать пользователей из Teams для основных пользовательских сценариев.App must not take users out of Teams for core user scenarios. Конечные объекты ссылок в приложениях не должны ссылаться на внешний браузер, но должны ссылаться на элементы div, содержащиеся в Teams, например внутри модулей задач и вкладок.Link targets in apps must not link to an external browser but should link to div elements contained within Teams e.g. inside Task Modules and tabs.
  • Персональные приложения позволяют пользователям обмениваться контентом из личного приложения с другими участниками группы.Personal apps enable users to share content from a personal app experience with other team members.

✅ предоставляют простой и простой вход/выход и регистрацию✅ Provide a clear and simple sign in/sign out and sign-up experience

See also Раздел 1100,5 — элемент управления CustomerSee also Section 1100.5 — Customer control

  • Если приложение или надстройка зависят от внешних учетных записей или служб, то функция входа в систему, выхода из нее и входа в систему должна быть очевидна и достижима во всех возможностях приложения.If your app or add-in depends on external accounts or services, the sign in/sign out and sign-up experience must be apparent and reachable across all capabilities in your app.

  • Если для пользователя предоставлен явный параметр входа, должен быть установлен соответствующий параметр Sign-Out (даже если приложение использует автоматическую проверку подлинности).If there is an explicit sign-in option provided to the user, there must be a corresponding sign-out option (even if the app is using silent authentication).

  • Функция выхода должна подписывать пользователя только от возможности приложения, а не от клиента Teams.The sign-out option must only sign the user out of your app's capability and not out of the Teams client.

  • Как минимум, функция выхода должна подписывать пользователя на те же возможности, что и при входе.At a minimum, the sign-out option must sign the user out of the same capabilities accessed with the sign-in option. Например, если параметр входа содержит как расширение и вкладка обмена сообщениями, то параметр выхода должен содержать как расширение и вкладка обмена сообщениями, так и расширение.For example, if the sign-in option includes both a messaging extension and tab, then the sign-out option must include both the messaging extension and tab.

  • Убедитесь, что существует способ обратить следующие (или аналогичные) варианты поведения:Make sure there is always a way to reverse the following (or similar) behaviors:

    • Вход => выход.Sign-in => sign-out.
    • Link a Account/Service => отменить связь учетной записи или службы.Link an account/service => unlink an account/service.
    • Connect a Account/Service => отключение учетной записи или службы.Connect an account/service => disconnect an account/service.
    • Авторизация учетной записи или службы => отмена авторизации или отказа учетной записи или службы.Authorize an account/service => deauthorize/deny an account/service.
    • Зарегистрируйте учетную запись или службу => отменить регистрацию или отменить подписку на учетную запись или службу.Register an account/service => deregister/unsubscribe an account/service.
  • Если для приложения требуется учетная запись или служба, необходимо предоставить пользователю способ регистрации или создания запроса на регистрацию.If your app requires an account or service, you must provide a way for the user to sign up or to create a sign-up request. Если для приложения требуется лицензия на использование, может быть выдано исключение.An exception may be granted if your app requires a license to use. Однако в таких сценариях необходимо предоставить простой способ пересылки для нового пользователя.But such scenarios, a clear way forward for a new user sign up must be provided.

  • Обязательно ознакомьтесь с инструкциями по четкому пересылке для нового пользователя о том, как подписаться на использование служб приложения.Make sure you provide clear-way-forward guidance to a new user on how to sign up to use your app services. Если ссылка "готовая подписка" недоступна, может быть предоставлен простой способ пересылки в следующих областях.If a ready sign-up link is not available, a clear way forward may be provided in the following areas

  • в разделах описания приложения;within your app's description sections;
  • в приветственном сообщении приложения;in your app's welcome message;
  • в справочном сообщении приложения;in your app's help message;
  • в окне, в котором пользователь должен войти в службы;in the window where you ask a user to sign in to your services;
  • Приложения, для которых не используется простой процесс регистрации, могут также включать вкладку справки или ссылку на веб-страницу, где новый пользователь может просмотреть подробные инструкции по настройке приложения с помощью Microsoft Teams.Apps that do not have an easy sign-up flow may also include a help tab or link to a web page where a new user can see detailed guidance on how to configure your app with Microsoft Teams. Это позволяет убедиться, что новый пользователь не блокируется при первом запуске приложения.This is to ensure a new user is not blocked when trying your app for the first time.
  • Функции входа и выхода должны работать на мобильных клиентах.Sign in/sign out functionality must work on mobile clients. Убедитесь, что используется Microsoft Teams SDK версии 1.4.1 или более поздней версии.Ensure you're using the Microsoft Teams SDK version 1.4.1 or later.

Дополнительные сведения о проверке подлинности содержатся в следующих статьях:For additional information on authentication see:

Время отклика ✅ должно быть приемлемым✅ Response times must be reasonable

  • Вкладки.Tabs. Если ответ на действие длится более трех секунд, необходимо предоставить сообщение о загрузке или предупреждение.If a response to an action takes more than three seconds, you must provide a loading message or warning.
  • Боты.Bots. Ответ на команду пользователя должен выполняться в течение двух секунд.A response to a user command must occur within two seconds. Если требуется более длительная обработка, приложение должно отображать индикатор ввода.If longer processing is required, your app must display a typing indicator.
  • Создание расширений.Compose extensions. Ответ на команду пользователя должен выполняться в течение пяти секунд.A response to a user command must occur within five seconds.

Совет

Убедитесь, что приложение отображает индикатор загрузки или некоторую форму предупреждения, когда приложение занимает больше времени, чем ожидалось.Make sure your app displays a loading indicator or some form of warning when your app is taking longer than expected to respond.

✅ контент вкладки не должен иметь чрезмерно хрома или многоуровневую навигацию✅ Tab content must not have excessive chrome or layered navigation

  • Вкладки должны предоставлять ориентированный контент и избегать ненужных элементов пользовательского интерфейса.Tabs should provide focused content and avoid needless UI elements. Как правило, это обычно относится к необязательной вложенной или многоуровневой навигации, внешнему или недоступному пользовательскому интерфейсу рядом с содержимым или любым ссылкам, которые принимают пользователя к несвязанному контенту.In general, this usually refers to unnecessary nested/layered navigation, an extraneous or irrelevant UI next to the content, or any links that take the user to unrelated content. Например, ниже представлен вид вкладки, в котором опущены меню навигации, и только демонстрируется основное содержимое:For example, below is a tab view that omits navigation menus and only showcases the main content:

Веб-представление SharePoint
Представление вкладки SharePoint

  • Вкладки должны быть светлыми в природе и не включать сложную навигацию.Tabs should be light in nature and not include complex navigation.
  • Вкладки каналов с сложными возможностями редактирования в приложении должны открыть представление редактора в нескольких окнах, а не на вкладке.Channel tabs that have complex editing capabilities within the app should open the editor view in a multi-window rather than a tab.
  • Вкладки каналов не должны предоставлять панель приложения со значками в левой границе, которые конфликтуют с навигацией по основным командам Teams.Channel tabs must not provide an app bar with icons in the left rail that conflicts with the main Teams navigation.
  • Вкладки не должны показывать панель приложения со значками в левой границе, которые конфликтуют с навигацией по основным командам Teams.Tabs must not present an app bar with icons in the left rail that conflict with the main Teams navigation.
  • Вкладки с сложными возможностями редактирования в приложении должны открыть представление редактора в нескольких окнах, а не на вкладке.Tabs that have complex editing capabilities within the app should open the editor view in a multi-window rather than in the tab.
  • Если есть несколько вариантов представления, рассмотрите возможность выбора вкладки вкладки для пользователя.If there are multiple view options, consider having a tab config menu for the user to choose from. Например, вместо встраивания меню на вкладку разместите меню на странице Конфигурация, чтобы представление действительной вкладки было четким и ориентированным.For example, instead of embedding a menu inside the tab, put the menu in the configuration page so the actual tab view is clean and focused.
  • Включите вкладку Справка в виде статической вкладки, чтобы уведомить пользователей о настройке, регистрации и использовании приложения.Please include a Help tab as a static tab to advise users how to configure, sign up, and use your app.
  • Перейдите на вкладку Параметры , которая доступна в заголовке приложения.Please include a Settings tab that is available from the app header.

Страница настройки для широкой идеи

Настройка вкладки ✅ должна выполняться на экране конфигурации✅ Tab configuration must happen in the configuration screen

  • На экране "Конфигурация" должно быть четко объяснено значение взаимодействия и Настройка вкладки.The configuration screen should clearly explain the value of the experience and how to configure the tab.
  • Процесс настройки всегда должен предоставить пользователям способ продолжения работы пользователя.The configuration process should always provide a way for users to continue not dead-end the user experience. Например, не показывать пустую доску после того, как пользователь настроил вкладкуFor example, do not show an empty board after the user has configured the tab
  • Процесс входа пользователя в систему должен быть частью процесса настройки и должен завершаться в пользовательском интерфейсе вкладки.The user sign-in process must be part of the configuration process and should complete in the Tab UI. После того как пользователь завершит настройку и загрузил вкладку, никаких дополнительных действий не требуется.After the user has completed configuration and loaded your tab, no further action should be required.
  • Не выводите всю веб-страницу во всплывающем окне Конфигурация входа.Don't show your entire webpage within the sign-in configuration pop-up window.
  • Пользователь всегда должен иметь возможность завершить настройку, даже если он не может сразу найти искомое содержимое.A user should always be able to finish the configuration experience, even if they can’t immediately find the content they’re looking for.
  • Конфигурация должна предоставлять пользователю параметры для поиска своего содержимого, закреплять URL-адрес или создавать новый контент, если он не существует.The configuration experience should provide options for the user to find their content, pin a URL, or create new content if it doesn’t exist.
  • Настройка должна сохраняться в контексте Teams.The configuration experience must remain within the Teams context. Пользователю не нужно выходить из конфигурации, чтобы создать контент, а затем вернуться в Teams, чтобы закрепить его.The user shouldn’t have to leave the configuration experience to create content and then return to Teams to pin it.
  • Эффективное использование доступной области окна просмотра.Use the available viewport area efficiently. Не излишнее использование огромных логотипов внутри всплывающей конфигурацииDo not waste it on using huge logos inside the configuration pop up

OneNote позволяет пользователям вставлять ссылки OneNote в заметках о невозможности поиска

Пользователи всегда могут создавать новый план в планировщике, если нет существующих

SharePoint также позволяет пользователю напрямую вставить ссылку SharePoint

✅ Боты всегда должны отвечать на запросы и завершаться некорректно✅ Bots must always be responsive and fail gracefully

Ваш робот должен отвечать на команды, а не неработающие пользователя.Your bot should be responsive to any command and not dead-end the user. Ниже приведено несколько советов, которые помогут вам пореагировать на поправку пользователей с помощью ленты.Here are some tips to help your bot intelligently respond to users:

  • Используйте списки команд.Use command lists. Анализ вводимых пользователем данных или прогнозирования намерения пользователя очень сложно.Analyzing user input or predicting user intent is hard. Вместо того чтобы позволить пользователям угадать, что может сделать Bot, предоставьте список команд, распознаваемых с помощью Bot.Instead of letting users guess what your bot can do, provide a list of commands your bot understands.

Список команд для передачи

  • Добавьте команду Help.Include a help command. Пользователи, скорее всего, будут вводить "Справка", когда она будет потеряна или не ответила должным образом.Users are likely to type "Help" when they are lost or when your bot doesn't respond as expected. Добавьте команду Help, которая описывает, как будет изменяться значение приложения, а также все допустимые команды.Include a help command that describes how your app's value will be experienced along with all valid commands.

Команда "Справка по блоку"

  • Включение справочных материалов или рекомендаций при потере ленты.Include help content or guidance when your bot is lost. Если пользователь Bot не может распознать вводимые данные, он должен предложить альтернативное действие.When your bot can't understand the user input, it should suggest an alternative action. Например, "я не понимаю. Введите "Help" для получения дополнительных сведений. "For example, "I'm sorry, I don't understand. Type "help" for more information." Не отвечайте на сообщение об ошибке или просто "я не понимаю".Don't respond with an error message or simply, "I don't understand". Используйте эту возможность для обучения пользователей.Use this chance to teach your users.

  • Использование адаптивных карт и модулей задач для очистки ответа от Bot и действий Адаптивные карточки с кнопками, вызывающими модули задач , улучшают интерфейс пользователя Bot.Use adaptive cards and task modules to make your bot response clear and actionable Adaptive cards with buttons invoking task modules enhance the bot user experience. Эти карточки и кнопки проще использовать на мобильном устройстве, а не на вводе этих команд пользователем.These cards and buttons are easier to use in a mobile device as opposed to your user typing the commands. Кроме того, ответы ленты не должны быть текстовыми с длинным текстом.Also bot responses should not be textual with long text. Боты должны использовать адаптивные карты & модулях задач вместо пользовательского интерфейса на основе общения и продолжительных текстовых ответов.Bots must make use of Adaptive cards & task modules instead of conversational chat based user interface and lengthy text responses

  • Продумайте все области.Think through all scopes. Убедитесь, что в приглашении @*botname* в канале и в личном беседе у вас есть соответствующие ответы.Be sure that your bot provides appropriate responses when mentioned (@*botname*) in a channel and in personal conversations. Если ваш робот не предоставляет осмысленный контекст в области личных или Teams, отключите эту область с помощью манифеста.If your bot does not provide meaningful context within the personal or teams scope, disable that scope via the manifest. (См bots . блок в справочнике по схеме манифеста Microsoft Teams.)(See the bots block in the Microsoft Teams manifest schema reference.)

  • Включение команды, группового чата или беседы по 1:1.Include team, group chat, or 1:1 conversation. К уведомлениям Bot должен относиться команда, чат группы или беседа "один к одному" с релевантным контентом для аудитории.Bot notifications should include a Team, a group chat, or a one-to-one conversation with relevant content for your audience.

  • Не надавите конфиденциальные данные.Do not push sensitive data. Боты не должно помещать конфиденциальные данные в команду, участие в группе или беседу по 1:1, если у вас есть аудитория, которые не должны иметь возможность просматривать эти данные.Bots must not push sensitive data to a Team, a group chat or a 1:1 conversation where there is an audience who should not be able to view that data

  • Введите приветственное сообщение.Provide a welcome message. Bot должен предоставить приветственное сообщение FRE, которое включает интерактивное руководство с карточками обоймы и кнопки "попробовать", чтобы способствовать задействованию.Bot must provide an FRE welcome message that includes an interactive tutorial with carousel cards or "try it" buttons, to encourage engagement.

✅ Personal Боты всегда должно отправлять приветственное сообщение при первом запуске✅ Personal bots must always send a welcome message on first launch

Приветственные сообщения — это лучший способ задать тон для ленты личного или чата.A welcome messages is the best way to set the tone for your personal/chat bot. Это первое взаимодействие пользователя с программой Bot.This is the first interaction a user has with the bot. Хорошее приветственное сообщение может способствовать пользователю продолжить изучение приложения.A good welcome message can encourage the user to keep exploring the app. Если приветственное или вступительное сообщение непонятны или неясно, пользователи не видят значение приложения немедленно и теряют интересы.If the welcome or introductory message is confusing or unclear, users won't see the value of the app immediately and lose interests. Требования к приветственному сообщению представлены в приведенном ниже разделе.Please see below section for Welcome message requirements.

Примечание

Приветственное сообщение необязательно для ленты канала.A welcome message is optional for a channel bot.

Требования к приветственному сообщениюWelcome message requirements

  • Включите предложение со значением в качестве начального курса.Include a value proposition with the welcome tour.
  • Предоставление последовательного руководства по использованию приложения.Provide way-forward guidance for using the app.
  • Включение рекомендаций по регистрации и настройке приложенияInclude guidance on how to Sign up and configure your app
  • Представление легко читаемого текста и легкое диалоговое окно — предпочтительная карточка с кнопкой обзора приветствия, которая загружает модуль задачи.Present easy-to-read text and straightforward dialogue — preferably a card with an actionable welcome tour button that loads a task module.
  • Для простоты и использования с помощью кнопок и карточек Избегайте длинного текста, диалога беседы.Keep it simple and usable with buttons and cards — avoid long text, chatty dialogue.
  • Включите адаптивные карты и кнопки, чтобы сделать приветственное сообщение более пригодным для использования.Include adaptive cards and buttons to make the welcome message more usable.
  • Вызов приветственного сообщения с помощью одной команды ping, а не двух или более одновременных сеансов связи.Invoke the welcome message with one ping, not two or more simultaneous pings.
  • Приветственное сообщение должно быть отображено только пользователю, который настроил приложение, желательно в 1:1 личном чате.A welcome message must only be shown to the user who configured the app, preferably in a 1:1 personal chat.
  • Персональные приложения всегда должны предоставлять пользователю приветственное сообщение.Personal apps must always provide a welcome message to a user.
  • Никогда не отправлять личный чат каждому участнику группы — это считается спамом.Never send a personal chat to every member in the team - this is considered spam.
  • Никогда не отправлять приветственное сообщение больше одного раза.Never send the welcome message more than once. Повторение такого же приветственного сообщения через регулярные интервалы не допускается и считается нежелательным.Repeating the same welcome message over regular intervals is not allowed and is considered spamming.

Избежание нежелательной почты в приветственном сообщенииAvoid welcome message spamming

  • Сообщение канала с помощью Bot.Channel message by bot. Не спама, создавая отдельные новые записи чата.Don't spam users by creating separate new chat posts. Создайте поток POST с ответами в одном и том же потоке.Create a single thread post with replies in the same thread.
  • Личный чат с помощью Bot.Personal chat by bot. Не отправлять несколько сообщений.Don't send multiple messages. Отправьте одно сообщение с полными сведениями.Send one message with complete information. Повторение такого же приветственного сообщения через регулярные интервалы не допускается и считается нежелательным.Repeating the same welcome message over regular intervals is not allowed and is considered spamming.

Приветственные сообщения ленты только для уведомленийNotification-only bot welcome messages

Только уведомления Боты должны отправлять приветственное сообщение, содержащее сообщение "я получит сообщение" только для уведомления и не сможет отвечать на ваши беседы ".Notification-only bots must send a welcome message that includes a message conveying, "I am a notification-only bot and will not be able to reply to your chats".

Приветственные сообщения в личной областиWelcome messages in the personal scope

  • Сделайте сообщение кратким и информативным.Make your message concise and informative. Скорее всего, взаимодействие с пользователем и знание вашего приложения будут отличаться.Most likely, user experience with and knowledge of your app will vary. Пользователь может использовать ваше приложение на другой платформе или ничего не знать о вашем приложении.A user may have used your app on another platform or know nothing about your app. Вы хотите настроить сообщение для всех аудиторий, а в паре предложений поясняется, что делает ваш Bot, и способы взаимодействия с ним.You want to tailor your message to all audiences and in a couple sentences explain what your bot does and the ways to interact with it. Кроме того, следует объяснить ценность приложения и то, как пользователи будут пользоваться им.You should also explain the value of the app and how the users will benefit from using it. Cafe и Диннинг BotCafe and Dinning bot

  • Сделайте сообщение действием.Make your message actionable. Продумайте первую вещь, которую должны делать пользователи после установки приложения.Think about the first thing you want users to do after installing your app. Есть ли замечательная команда, которую следует предпринять?Is there a cool command they should try? Есть ли еще у вас работа по входящей миграции?Is there another onboarding experience they should know about? Требуется выполнить вход?Do they need to sign in? Вы можете добавлять действия к адаптивной карточке или предоставлять конкретные примеры, такие как "попробовать запрашивать....", "это то, что можно сделать...".You can add actions on an adaptive card or provide specific examples such as “Try asking….”, “This is what I can do…”.

Приветственные сообщения в области группы или каналаWelcome messages in the team/channel scope

При первом добавлении ленты в канал некоторые из них отличаются.Things are a little bit different when the bot is first added to a channel. Обычно сообщение 1:1 не должно отправляться всем участникам команды, но в канале Bot можно отправить приветственное сообщение.Normally, you shouldn't send a 1:1 message to everyone on the team, but the bot can send a welcome message in the channel.

✅ скорость отклика мобильных устройств без прямой продаж или оплаты✅ Mobile responsiveness, no direct upsell or payment

  • Вкладки, адаптивные карты, сообщения Bot и контент в модулях задач должны отвечать на различные размеры экранов мобильных устройств.Your tabs, adaptive cards, bot messages and content in task modules must be responsive for a variety of mobile device screens sizes.
  • Приложения, поддерживающие iOS, должны быть полностью работоспособны на последнем устройстве iPad с помощью последней версии iOS.Apps that support iOS must be fully functional on the latest iPad device using the latest version of iOS.
  • Не должны быть включены какие-либо прямые ссылки на покупки в приложениях, пробные предложения, предложения платных версий или ссылки на Интернет-магазины, где пользователи могут покупать или получать другие материалы, приложения или надстройки из приложения Teams в мобильную ОС (Android, iOS).Must not include any direct references to in-app purchases, trial offers, offers for paid versions, or links to any online stores where users can purchase or acquire other content, apps, or add-ins from your Teams app on mobile OS (Android, iOS).
  • Надстройка для iOS или Android не должна отображать пользовательский интерфейс или язык или ссылаться на другие приложения, надстройки или веб-сайт, которые запрашивают у пользователя оплату.The iOS or Android version of the add-in must not show any UI or language or link to any other apps, add-ins, or website that ask the user to pay.
  • Связанная политика конфиденциальности и условия использования также должны быть свободными от любой ссылки на интерфейс пользователя или хранилища Commerce.The associated Privacy Policy and Terms of Use pages must also be free of any commerce UI or Store links.

✅ не размещайте конфиденциальные данные в аудиторию, не предназначенную для просмотра данных✅ Do not post sensitive data to an audience not intended to view the data

Ваше приложение Teams не должно учитывать конфиденциальные данные, такие как инструмент "кредитная карта/финансовая оплата", личные сведения (ПИН-код), работоспособность или трассировка контакта, на аудиторию, не предназначенную для просмотра этих данных.Your Teams app must not post sensitive data such as credit card / financial payment instrument, Personal Identifiable Information (PIN), health, or contact tracing information to an audience not intended to view that data.

✅ не передавать сведения об финансовых платежах или завершать финансовые транзакции через приложение Teams✅ Do not transmit financial payment details or complete financial transactions via your Teams app

  • Приложение Teams не должно попросить пользователей выполнить оплату непосредственно в интерфейсе Teams.Your Teams app must not ask users to make a payment directly within Teams interface
  • Приложения не могут передавать сведения о финансовом инструменте через пользователя в интерфейсе приложения.Apps may not transmit financial instrument details through the user on the app interface. Приложения могут передавать только ссылки на защищенные службы оплаты пользователям, если это указано в условиях использования приложения, политики конфиденциальности и любой страницы профиля или веб-сайта приложения до того, как пользователь соглашается использовать приложение.Apps may only transmit links to secure payment services to users if this is disclosed in the app's Terms of Use, Privacy Policy, and any profile page or website for the app before a user agrees to use the app.

✅ очистить предупреждение перед загрузкой файлов и исполняемых файлов ( .exe ) в среду пользователя✅ Clear warning before downloading any files or executable (.exe) into a user’s environment

Предупредите пользователей, прежде чем приложение загрузит файлы или исполняемые файлы ( .exe ) на компьютер пользователя или в среду.Please warn users before your app downloads any files or executable (.exe )into the user's machine or environment.

✅ расширениями обмена сообщениями должен предоставляться текст справки, который легко читать✅ Messaging extensions should provide help text and be easy to read

  • Расширение обмена сообщениями на основе поиска должно предоставлять справочный текст по эффективному поиску (например, для отображения примера ввода).The search-based messaging extension should provide help text on how to effectively search (e.g., show example input).
  • Модули задач должны включать значок и краткое имя, которое они содержат в приложении или созданы из него.Task modules must include an icon and a short name that they are contained in or created from the app.
  • @mentionИсполняемые файлы расширения сообщения должны быть понятными, понятными и удобными для чтения.The message extension @mention executables should be clear, easy to understand, and easy to read. Расширение сообщенияMessage extension