Ссылка: схема манифеста для Microsoft TeamsReference: Manifest schema for Microsoft Teams

Манифест Microsoft Teams описывает, как приложение интегрируется в продукт Microsoft Teams.The Microsoft Teams manifest describes how the app integrates into the Microsoft Teams product. Манифест должен соответствовать схеме, размещенной в https://developer.microsoft.com/json-schemas/teams/v1.8/MicrosoftTeams.schema.json .Your manifest must conform to the schema hosted at https://developer.microsoft.com/json-schemas/teams/v1.8/MicrosoftTeams.schema.json. Также поддерживаются предыдущие версии 1.0-1.4 (в URL-адресе используется "v1. x").Previous versions 1.0-1.4 are also supported (using "v1.x" in the URL).

В приведенном ниже примере схемы показаны все варианты расширения.The following schema sample shows all extensibility options.

Пример полного манифестаSample full manifest

{
  "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.8/MicrosoftTeams.schema.json",
  "manifestVersion": "1.8",
  "version": "1.0.0",
  "id": "%MICROSOFT-APP-ID%",
  "packageName": "com.example.myapp",
  "localizationInfo": {
    "defaultLanguageTag": "en-us",
    "additionalLanguages": [
      {
        "languageTag": "es-es",
        "file": "en-us.json"
      }
    ]
  },
  "developer": {
    "name": "Publisher Name",
    "websiteUrl": "https://website.com/",
    "privacyUrl": "https://website.com/privacy",
    "termsOfUseUrl": "https://website.com/app-tos",
    "mpnId": "1234567890"
  },
  "name": {
    "short": "Name of your app (<=30 chars)",
    "full": "Full name of app, if longer than 30 characters (<=100 chars)"
  },
  "description": {
    "short": "Short description of your app (<= 80 chars)",
    "full": "Full description of your app (<= 4000 chars)"
  },
  "icons": {
    "outline": "A relative path to a transparent .png icon — 32px X 32px",
    "color": "A relative path to a full color .png icon — 192px X 192px"
  },
  "accentColor": "A valid HTML color code.",
  "configurableTabs": [
    {
      "configurationUrl": "https://contoso.com/teamstab/configure",
      "scopes": [
        "team",
        "groupchat"
      ],
      "canUpdateConfiguration": true,
      "context":[
        "channelTab",
        "privateChatTab",
        "meetingChatTab",
        "meetingDetailsTab",
        "meetingSidePanel",
        "meetingStage"
      ],
      "sharePointPreviewImage": "Relative path to a tab preview image for use in SharePoint — 1024px X 768",
      "supportedSharePointHosts": [
         "sharePointFullPage",
         "sharePointWebPart"
      ]
    }
  ],
  "staticTabs": [
    {
      "entityId": "unique Id for the page entity",
      "scopes": [
        "personal"
      ],
      "context":[
        "personalTab",
        "channelTab"
        ],
      "name": "Display name of tab",
      "contentUrl": "https://contoso.com/content (displayed in Teams canvas)",
      "websiteUrl": "https://contoso.com/content (displayed in web browser)",
       "searchUrl":  "https://contoso.com/content (displayed in web browser)"
    }
  ],
  "bots": [
    {
      "botId": "%MICROSOFT-APP-ID-REGISTERED-WITH-BOT-FRAMEWORK%",
      "scopes": [
        "team",
        "personal",
        "groupchat"
      ],
      "needsChannelSelector": false,
      "isNotificationOnly": false,
      "supportsFiles": true,
      "supportsCalling": false,
      "supportsVideo": true,
      "commandLists": [
        {
          "scopes": [
            "team",
            "groupchat"
          ],
          "commands": [
            {
              "title": "Command 1",
              "description": "Description of Command 1"
            },
            {
              "title": "Command 2",
              "description": "Description of Command 2"
            }
          ]
        },
        {
          "scopes": [
            "personal",
            "groupchat"
          ],
          "commands": [
            {
              "title": "Personal command 1",
              "description": "Description of Personal command 1"
            },
            {
              "title": "Personal command N",
              "description": "Description of Personal command N"
            }
          ]
        }
      ]
    }
  ],
  "connectors": [
    {
      "connectorId": "GUID-FROM-CONNECTOR-DEV-PORTAL%",
      "scopes": [
        "team"
      ],
      "configurationUrl": "https://contoso.com/teamsconnector/configure"
    }
  ],
  "composeExtensions": [
    {
      "canUpdateConfiguration": true,
      "botId": "%MICROSOFT-APP-ID-REGISTERED-WITH-BOT-FRAMEWORK%",
      "commands": [
        {
          "id": "exampleCmd1",
          "title": "Example Command",
          "type": "query",
          "context": [
            "compose",
            "commandBox"
          ],
          "description": "Command Description; e.g., Search on the web",
          "initialRun": true,
          "fetchTask": false,
          "parameters": [
            {
              "name": "keyword",
              "title": "Search keywords",
              "inputType": "text",
              "description": "Enter the keywords to search for",
              "value": "Initial value for the parameter",
              "choices": [
                {
                  "title": "Title of the choice",
                  "value": "Value of the choice"
                }
              ]
            }
          ]
        },
        {
          "id": "exampleCmd2",
          "title": "Example Command 2",
          "type": "action",
          "context": [
            "message"
          ],
          "description": "Command Description; e.g., Search for a customer",
          "initialRun": true,
          "fetchTask": true,
          "parameters": [
            {
              "name": "custinfo",
              "title": "Customer name",
              "description": "Enter a customer name",
              "inputType": "text"
            }
          ]
        }
      ],
      "taskInfo": {
        "title": "Initial dialog title",
        "width": "Dialog width",
        "height": "Dialog height",
        "url": "Initial webview URL"
      },
      "messageHandlers": [
        {
          "type": "link",
          "value": {
            "domains": [
              "mysite.someplace.com",
              "othersite.someplace.com"
            ]
          }
        }
      ]
    }
  ],
  "permissions": [
    "identity",
    "messageTeamMembers"
  ],
  "devicePermissions": [
    "geolocation",
    "media",
    "notifications",
    "midi",
    "openExternal"
  ],
  "validDomains": [
    "contoso.com",
    "mysite.someplace.com",
    "othersite.someplace.com"
  ],
  "webApplicationInfo": {
    "id": "AAD App ID",
    "resource": "Resource URL for acquiring auth token for SSO",
    "applicationPermissions": [
      "TeamSettings.Read.Group",
      "ChannelSettings.Read.Group",
      "ChannelSettings.Edit.Group",
      "Channel.Create.Group",
      "Channel.Delete.Group",
      "ChannelMessage.Read.Group",
      "TeamsApp.Read.Group",
      "TeamsTab.Read.Group",
      "TeamsTab.Create.Group",
      "TeamsTab.Edit.Group",
      "TeamsTab.Delete.Group",
      "Member.Read.Group",
      "Owner.Read.Group",
      "Member.ReadWrite.Group",
      "Owner.ReadWrite.Group"
    ],
  },
  "showLoadingIndicator": false,
  "isFullScreen": false,
  "activities": {
    "activityTypes": [
      {
        "type": "taskCreated",
        "description": "Task created activity",
        "templateText": "<team member> created task <taskId> for you"
      },
      {
        "type": "userMention",
        "description": "Personal mention activity",
        "templateText": "<team member> mentioned you"
      }
    ]
  }
}

Схема определяет следующие свойства:The schema defines the following properties:

$schema$schema

Необязательно, но рекомендуется — строкаOptional, but recommended — string

URL-адрес https://, ссылающийся на схему JSON для манифеста.The https:// URL referencing the JSON Schema for the manifest.

Версия манифестаmanifestVersion

Обязательный — строкаRequired — string

Версия схемы манифеста, используемая манифестом.The version of the manifest schema this manifest is using. Он должен иметь значения "1,7".It should be "1.7".

versionversion

Обязательный — строкаRequired — string

Версия конкретного приложения.The version of the specific app. Если вы обновите какой-либо элемент в манифесте, необходимо также увеличить номер версии.If you update something in your manifest, the version must be incremented as well. Благодаря этому при установке нового манифеста будет переписан существующий, а пользователь получит новые функции.This way, when the new manifest is installed, it will overwrite the existing one and the user will get the new functionality. Если это приложение было отправлено в хранилище, новый манифест необходимо будет повторно отправить и проверить повторно.If this app was submitted to the store, the new manifest will have to be re-submitted and re-validated. После этого пользователи этого приложения автоматически получат новый обновленный манифест в течение нескольких часов после его утверждения.Then, users of this app will get the new updated manifest automatically in a few hours, after it is approved.

Если приложение запросило изменение разрешений, пользователям будет предложено выполнить обновление и повторное согласие на доступ к приложению.If the app requested permissions change, users will be prompted to upgrade and re-consent to the app.

Эта строка версии должна соответствовать стандарту semver (Major. Значительные. PATCH).This version string must follow the semver standard (MAJOR.MINOR.PATCH).

idid

Обязательный — идентификатор приложения МайкрософтRequired — Microsoft app ID

Уникальный идентификатор, созданный корпорацией Майкрософт для этого приложения.The unique Microsoft-generated identifier for this app. Если вы зарегистрировали Bot с помощью Microsoft Bot Framework, или веб-приложение вашей вкладки уже входит в Microsoft, у вас уже должен быть идентификатор, и его следует ввести здесь.If you have registered a bot via the Microsoft Bot Framework, or your tab's web app already signs in with Microsoft, you should already have an ID and should enter it here. В противном случае необходимо создать новый идентификатор на портале регистрации приложений (Мои приложения) Майкрософт, ввести его здесь, а затем повторно использовать его при добавлении ленты. Note: Если вы отправляете обновление существующему приложению в AppSource, идентификатор в манифесте не должен изменяться.Otherwise, you should generate a new ID at the Microsoft Application Registration Portal (My Applications), enter it here, and then reuse it when you add a bot.Note: If you are submitting an update to your existing app in AppSource, the ID in your manifest must not be modified.

developerdeveloper

Обязательный — объектRequired — object

Указывает сведения о компании.Specifies information about your company. Для приложений, отправляемых в AppSource (ранее — магазин Office), эти значения должны быть сопоставлены со сведениями в записи AppSource.For apps submitted to AppSource (formerly Office Store), these values must match the information in your AppSource entry. Ознакомьтесь с нашими рекомендациями по публикации для получения дополнительной информации.See our publishing guidelines for additional information.

ИмяName Максимальный размерMaximum size ОбязательныйRequired ОписаниеDescription
name 32 символов32 characters Отображаемое имя разработчика.The display name for the developer.
websiteUrl 2048 символов2048 characters URL-адрес https://на веб-сайт разработчика.The https:// URL to the developer's website. Эта ссылка должна принять участие у пользователей в вашей компании или целевой странице для конкретного продукта.This link should take users to your company or product-specific landing page.
privacyUrl 2048 символов2048 characters URL-адрес https://для политики конфиденциальности разработчика.The https:// URL to the developer's privacy policy.
termsOfUseUrl 2048 символов2048 characters URL-адрес https://для условий использования разработчиком.The https:// URL to the developer's terms of use.
mpnId 10 символов10 characters Необязательное требование Идентификатор сети партнера Майкрософт, определяющий партнерскую организацию, которая создает приложение.Optional The Microsoft Partner Network ID that identifies the partner organization building the app.

namename

Обязательный — объектRequired — object

Имя приложения, отображаемое для пользователей в интерфейсе Teams.The name of your app experience, displayed to users in the Teams experience. Для приложений, отправляемых в AppSource, эти значения должны быть соответствующими сведениям в записи AppSource.For apps submitted to AppSource, these values must match the information in your AppSource entry. Значения short и full не должны совпадать.The values of short and full should not be the same.

ИмяName Максимальный размерMaximum size ОбязательныйRequired ОписаниеDescription
short 30 символов30 characters Краткое отображаемое имя приложения.The short display name for the app.
full 100 символов100 characters Полное имя приложения, используемое, если имя полного приложения превышает 30 символов.The full name of the app, used if the full app name exceeds 30 characters.

descriptiondescription

Обязательный — объектRequired — object

Описывает приложение для пользователей.Describes your app to users. Для приложений, отправляемых в AppSource, эти значения должны быть соответствующими сведениям в записи AppSource.For apps submitted to AppSource, these values must match the information in your AppSource entry.

Убедитесь, что ваше описание точно описывает ваш интерфейс и предоставляет сведения, помогающие потенциальным клиентам определить, что делает ваш интерфейс.Ensure that your description accurately describes your experience and provides information to help potential customers understand what your experience does. Кроме того, в полном описании следует отметить, если для использования требуется внешняя учетная запись.You should also note, in the full description, if an external account is required for use. Значения short и full не должны совпадать.The values of short and full should not be the same. Краткое описание не должно повторяться в длинном описании и не должно включать имя другого приложения.Your short description must not be repeated within the long description and must not include any other app name.

ИмяName Максимальный размерMaximum size ОбязательныйRequired ОписаниеDescription
short 80 символов80 characters Краткое описание интерфейса приложения, используемое при ограниченном пространстве.A short description of your app experience, used when space is limited.
full 4000 символов4000 characters Полное описание приложения.The full description of your app.

паккаженамеpackageName

Необязательное — строкаOptional — string

Уникальный идентификатор для этого приложения в обратной нотации домена; Пример: com. example. MyApp.A unique identifier for this app in reverse domain notation; for example, com.example.myapp. Максимальная длина: 64 символа.Maximum length: 64 characters.

локализатионинфоlocalizationInfo

Необязательный — объектOptional — object

Разрешает спецификацию языка по умолчанию, а также указателей на дополнительные языковые файлы.Allows the specification of a default language, as well as pointers to additional language files. См.: Локализация.See localization.

ИмяName Максимальный размерMaximum size ОбязательныйRequired ОписаниеDescription
defaultLanguageTag Тег языка строк в этом файле манифеста верхнего уровня.The language tag of the strings in this top level manifest file.

Локализатионинфо. АддитионаллангуажесlocalizationInfo.additionalLanguages

Массив объектов, задающий дополнительные языковые переводы.An array of objects specifying additional language translations.

ИмяName Максимальный размерMaximum size ОбязательныйRequired ОписаниеDescription
languageTag Тег языка строк в указанном файле.The language tag of the strings in the provided file.
file Относительный путь к файлу. JSON, содержащему переведенные строки.A relative file path to a the .json file containing the translated strings.

iconsicons

Обязательный — объектRequired — object

Значки, используемые в приложении Teams.Icons used within the Teams app. Файлы значков должны быть включены в состав пакета отправки.The icon files must be included as part of the upload package. Дополнительные сведения можно найти в разделе значки .See Icons for more information.

ИмяName Максимальный размерMaximum size ОбязательныйRequired ОписаниеDescription
outline 32 x 32 пикселей32 x 32 pixels Относительный путь к файлу с прозрачным значком изображения в формате 32x32 PNG.A relative file path to a transparent 32x32 PNG outline icon.
color 192 x 192 пикселей192 x 192 pixels Относительный путь к файлу полного цветового значка PNG 192x192.A relative file path to a full color 192x192 PNG icon.

акцентколорaccentColor

Необязательное — шестнадцатеричный код цвета HTMLOptional — HTML Hex color code

Цвет, используемый в сочетании с фоном для значков структуры.A color to use in conjunction with and as a background for your outline icons.

Значение должно быть допустимым цветом HTML-кода, начинающимся с "#", например #4464ee .The value must be a valid HTML color code starting with '#', for example #4464ee.

конфигураблетабсconfigurableTabs

Необязательный — массивOptional — array

Используется, когда у вашего приложения есть вкладка "канал группы", требующая дополнительной настройки перед добавлением.Used when your app experience has a team channel tab experience that requires extra configuration before it is added. Настраиваемые вкладки поддерживаются только в области Teams (не личное), и в настоящее время поддерживается только одна вкладка на приложение.Configurable tabs are supported only in the teams scope (not personal), and currently only one tab per app is supported.

ИмяName ТипType Максимальный размерMaximum size ОбязательныйRequired ОписаниеDescription
configurationUrl строкаstring 2048 символов2048 characters URL-адрес https://, используемый при настройке вкладки.The https:// URL to use when configuring the tab.
scopes массив перечисленийarray of enums 1,11 В настоящее время настраиваемые вкладки поддерживают только team области и groupchat области.Currently, configurable tabs support only the team and groupchat scopes.
canUpdateConfiguration логическийboolean Значение, указывающее, может ли пользователь обновлять экземпляр конфигурации вкладки после создания.A value indicating whether an instance of the tab's configuration can be updated by the user after creation. Значение по умолчанию: true.Default: true.
context массив перечисленийarray of enums 6 6 Набор областей, в contextItem которых поддерживается вкладка.The set of contextItem scopes where a tab is supported. Значение по умолчанию: [чаннелтаб, приватечаттаб, митингчаттаб, митингдетаилстаб].Default: [channelTab, privateChatTab, meetingChatTab, meetingDetailsTab].
sharePointPreviewImage строкаstring 20482048 Относительный путь к изображению вкладки для использования в SharePoint.A relative file path to a tab preview image for use in SharePoint. Размер 1024x768.Size 1024x768.
supportedSharePointHosts массив перечисленийarray of enums 1,11 Определяет, как будет предоставляться вкладка в SharePoint.Defines how your tab will be made available in SharePoint. Параметры sharePointFullPage``sharePointWebPartOptions are sharePointFullPage and sharePointWebPart

статиктабсstaticTabs

Необязательный — массивOptional — array

Определяет набор вкладок, которые по умолчанию можно закреплять, не добавляя пользователей вручную.Defines a set of tabs that can be "pinned" by default, without the user adding them manually. Статические вкладки, объявляемые в personal области, всегда фиксируются в личном интерфейсе приложения.Static tabs declared in personal scope are always pinned to the app's personal experience. Статические вкладки, объявленные в team области, в настоящее время не поддерживаются.Static tabs declared in the team scope are currently not supported.

Этот элемент является массивом (не более 16 элементов) со всеми элементами типа object .This item is an array (maximum of 16 elements) with all elements of the type object. Этот блок необходим только для решений, предоставляющих статическое решение для вкладок.This block is required only for solutions that provide a static tab solution.

ИмяName ТипType Максимальный размерMaximum size ОбязательныйRequired ОписаниеDescription
entityId строкаstring 64 символа64 characters Уникальный идентификатор объекта, отображаемого на вкладке.A unique identifier for the entity that the tab displays.
name строкаstring 128 символов128 characters Отображаемое имя вкладки в интерфейсе канала.The display name of the tab in the channel interface.
contentUrl строкаstring URL-адрес https://, указывающий на пользовательский интерфейс сущности, который будет отображаться в полотне Teams.The https:// URL that points to the entity UI to be displayed in the Teams canvas.
websiteUrl строкаstring URL-адрес https://, указывающий на просмотр в браузере пользователем.The https:// URL to point to if a user opts to view in a browser.
searchUrl строкаstring URL-адрес https://, указывающий на поисковые запросы пользователя.The https:// URL to point to for a user's search queries.
scopes массив перечисленийarray of enums 1,11 В настоящее время статические вкладки поддерживают только personal область, что означает, что ее можно подготовить только в рамках личного интерфейса.Currently, static tabs support only the personal scope, which means it can be provisioned only as part of the personal experience.
context массив перечисленийarray of enums 22 Набор областей, в contextItem которых поддерживается вкладка.The set of contextItem scopes where a tab is supported.

Примечание

Если на вкладках требуются контекстно зависимые сведения для отображения релевантного контента или для инициализации процесса проверки подлинности, обратитесь к разделу Получение контекста для вкладки Microsoft Teams.If your tabs require context-dependent information to display relevant content or for initiating an authentication flow, see Get context for your Microsoft Teams tab.

Ботыbots

Необязательный — массивOptional — array

Определяет одноэлементное решение, а также дополнительные сведения, такие как свойства команды по умолчанию.Defines a bot solution, along with optional information such as default command properties.

Элемент является массивом ( — в настоящее время для каждого приложения допускается только один элемент "bot" для каждого приложения) со всеми элементами типа object .The item is an array (maximum of only 1 element—currently only one bot is allowed per app) with all elements of the type object. Этот блок необходим только для решений, предоставляющих интерфейс Bot.This block is required only for solutions that provide a bot experience.

ИмяName ТипType Максимальный размерMaximum size ОбязательныйRequired ОписаниеDescription
botId строкаstring 64 символа64 characters Уникальный идентификатор приложения Майкрософт для бота, зарегистрированный в Bot Framework.The unique Microsoft app ID for the bot as registered with the Bot Framework. Это может быть так же, как и общий идентификатор приложения.This may well be the same as the overall app ID.
scopes массив перечисленийarray of enums 43 Указывает, предлагает ли бот функции в контексте канала в team, в групповом чате (groupchat) или функции, ограниченные только отдельным пользователем (personal).Specifies whether the bot offers an experience in the context of a channel in a team, in a group chat (groupchat), or an experience scoped to an individual user alone (personal). Эти параметры не являются исключающими.These options are non-exclusive.
needsChannelSelector логическийboolean Описывает, использует ли бот пользовательское указание для добавления бота в определенный канал.Describes whether or not the bot utilizes a user hint to add the bot to a specific channel. Умолчани falseDefault: false
isNotificationOnly логическийboolean Указывает, является ли бот односторонним и только для уведомлений, в отличие от бота для беседы.Indicates whether a bot is a one-way, notification-only bot, as opposed to a conversational bot. Умолчани **false**Default: **false**
supportsFiles логическийboolean Указывает, поддерживает ли бот возможность отправки и скачивания файлов в личном чате.Indicates whether the bot supports the ability to upload/download files in personal chat. Умолчани falseDefault: false
supportsCalling логическийboolean Значение, указывающее, где канал Bot поддерживает голосовой вызов.A value indicating where a bot supports audio calling. Важно! в настоящее время это свойство является экспериментальным.IMPORTANT: This property is currently experimental. Экспериментальные свойства могут быть неполными и могут изменяться, прежде чем стать полностью доступным.Experimental properties may not be complete, and may undergo changes before becoming fully available. Он предоставляется только для целей проверки и не должен использоваться в рабочих приложениях.It is provided for testing and exploration purposes only and should not be used in production applications. Умолчани falseDefault: false
supportsVideo логическийboolean Значение, указывающее, где в канале Bot поддерживается видеовызов.A value indicating where a bot supports video calling. Важно! в настоящее время это свойство является экспериментальным.IMPORTANT: This property is currently experimental. Экспериментальные свойства могут быть неполными и могут изменяться, прежде чем стать полностью доступным.Experimental properties may not be complete, and may undergo changes before becoming fully available. Он предоставляется только для целей проверки и не должен использоваться в рабочих приложениях.It is provided for testing and exploration purposes only and should not be used in production applications. Умолчани falseDefault: false

Боты. Коммандлистсbots.commandLists

Необязательный список команд, которые ваш робот может рекомендовать пользователям.An optional list of commands that your bot can recommend to users. Объект является массивом (не более 2 элементов) со всеми элементами типа object ; необходимо определить отдельный список команд для каждой области, которую поддерживает Bot.The object is an array (maximum of 2 elements) with all elements of type object; you must define a separate command list for each scope that your bot supports. Дополнительные сведения содержатся в меню Bot .See Bot menus for more information.

ИмяName ТипType Максимальный размерMaximum size ОбязательныйRequired ОписаниеDescription
items.scopes массив перечисленийarray of enums 43 Указывает область, для которой действует список команд.Specifies the scope for which the command list is valid. Возможны значения team, personal и groupchat.Options are team, personal, and groupchat.
items.commands массив объектовarray of objects 10 10 Массив команд, поддерживаемых ботом:An array of commands the bot supports:
title: имя команды бота (строка, 32)title: the bot command name (string, 32)
description: простое описание или пример синтаксиса команды и ее аргумента (строка, 128)description: a simple description or example of the command syntax and its argument (string, 128)

Боты. Коммандлистс. Commandsbots.commandLists.commands

ИмяName ТипType Максимальный размерMaximum size ОбязательныйRequired ОписаниеDescription
titletitle stringstring 12 12 Имя команды BotThe bot command name
descriptiondescription строкаstring 128 символов128 characters Простое текстовое описание или пример синтаксиса команды и его аргументов.A simple text description or an example of the command syntax and its arguments.

аудиовыходconnectors

Необязательный — массивOptional — array

connectorsБлок определяет соединитель Office 365 для приложения.The connectors block defines an Office 365 Connector for the app.

Объект является массивом (не более 1 элемента) со всеми элементами типа object .The object is an array (maximum of 1 element) with all elements of type object. Этот блок необходим только для решений, предоставляющих соединитель.This block is required only for solutions that provide a Connector.

ИмяName ТипType Максимальный размерMaximum size ОбязательныйRequired ОписаниеDescription
configurationUrl строкаstring 2048 символов2048 characters URL-адрес https://, используемый при настройке соединителя.The https:// URL to use when configuring the connector.
scopes массив перечисленийarray of enums 1,11 Указывает, будет ли соединитель работать в контексте канала в team или в интерфейсе для отдельного пользователя ( personal ).Specifies whether the Connector offers an experience in the context of a channel in a team, or an experience scoped to an individual user alone (personal). В настоящее время team поддерживается только область действия.Currently, only the team scope is supported.
connectorId строкаstring 64 символа64 characters Уникальный идентификатор соединителя, который соответствует ИДЕНТИФИКАТОРу в панели мониторинга разработчика соединителей.A unique identifier for the Connector that matches its ID in the Connectors Developer Dashboard.

компосикстенсионсcomposeExtensions

Необязательный — массивOptional — array

Определяет расширение системы обмена сообщениями для приложения.Defines a messaging extension for the app.

Примечание

Имя компонента изменилось с "расширение составления" на "расширение обмена сообщениями" в ноябре 2017, но имя манифеста остается без изменений, поэтому все существующие расширения продолжают работать.The name of the feature was changed from "compose extension" to "messaging extension" in November, 2017, but the manifest name remains the same so that existing extensions continue to function.

Элемент является массивом (не более 1 элемента) со всеми элементами типа object .The item is an array (maximum of 1 element) with all elements of type object. Этот блок необходим только для решений, предоставляющих расширение системы обмена сообщениями.This block is required only for solutions that provide a messaging extension.

ИмяName ТипType Максимальный размерMaximum Size ОбязательныйRequired ОписаниеDescription
botId строкаstring 6464 Уникальный идентификатор приложения для ленты, который выполняет резервное копирование расширения обмена сообщениями, как зарегистрировано в Bot Framework.The unique Microsoft app ID for the bot that backs the messaging extension, as registered with the Bot Framework. Это может быть так же, как и общий идентификатор приложения.This may well be the same as the overall App ID.
commands массив объектовarray of objects 10 10 массив команд, поддерживающих расширение системы обмена сообщениямиarray of commands the messaging extension supports
canUpdateConfiguration логическийboolean Значение, указывающее, может ли пользователь изменять конфигурацию расширения системы обмена сообщениями.A value indicating whether the configuration of a messaging extension can be updated by the user. По умолчанию: false.Default: false.
messageHandlers Массив объектовarray of Objects 5 5 Список обработчиков, позволяющих вызывать приложения при выполнении определенных условий.A list of handlers that allow apps to be invoked when certain conditions are met. Домены также должны быть перечислены в validDomainsDomains must also be listed in validDomains
messageHandlers.type строкаstring Тип обработчика сообщений.The type of message handler. Должно быть задано значение "link".Must be "link".
messageHandlers.value.domains Массив строкarray of Strings массив доменов, для которых может регистрироваться обработчик сообщений ссылки.array of domains that the link message handler can register for.

Компосикстенсионс. CommandscomposeExtensions.commands

Ваш модуль обмена сообщениями должен объявить одну или несколько команд.Your messaging extension should declare one or more commands. Каждая команда отображается в Microsoft Teams в качестве потенциального взаимодействия от точки входа на основе пользовательского интерфейса.Each command appears in Microsoft Teams as a potential interaction from the UI-based entry point. Существует не более 10 команд.There is a maximum of 10 commands.

Каждый элемент команды представляет собой объект со следующей структурой:Each command item is an object with the following structure:

ИмяName ТипType Максимальный размерMaximum size ОбязательныйRequired ОписаниеDescription
id строкаstring 64 символа64 characters Идентификатор команды.The ID for the command.
title строкаstring 32 символов32 characters Понятное имя команды.The user-friendly command name.
type строкаstring 64 символа64 characters Тип команды.Type of the command. Один из query или action .One of query or action. Значение по умолчанию: Query.Default: query.
description строкаstring 128 символов128 characters Описание, которое отображается для пользователей, чтобы указать назначение этой команды.The description that appears to users to indicate the purpose of this command.
initialRun логическийboolean Логическое значение, которое указывает, следует ли выполнять команду изначально без параметров.A boolean value that indicates whether the command should be run initially with no parameters. По умолчанию: false.Default: false.
context Массив строкarray of Strings 43 Определяет, откуда можно вызвать расширение сообщения.Defines where the message extension can be invoked from. Любое сочетание compose , commandBox , message .Any combination ofcompose,commandBox,message . Значение по умолчанию: ["compose","commandBox"].Default is ["compose","commandBox"].
fetchTask логическийboolean Логическое значение, которое указывает, следует ли выполнять динамическое извлечение модуля задачи.A boolean value that indicates if it should fetch the task module dynamically. По умолчанию: false.Default: false.
taskInfo объектobject Укажите модуль задач для предварительной загрузки при использовании команды расширения системы обмена сообщениями.Specify the task module to pre-load when using a messaging extension command.
taskInfo.title строкаstring 64 символа64 characters Заголовок начального диалогового окна.Initial dialog title.
taskInfo.width строкаstring Ширина диалогового окна — число в пикселях или макет по умолчанию, например "крупный", "средний" или "Малый".Dialog width - either a number in pixels or default layout such as 'large', 'medium', or 'small'.
taskInfo.height строкаstring Высота диалогового окна — число в пикселях или макет по умолчанию, например "крупный", "средний" или "Малый".Dialog height - either a number in pixels or default layout such as 'large', 'medium', or 'small'.
taskInfo.url строкаstring Исходный URL-адрес вебвиев.Initial webview URL.
parameters Массив объектовarray of object 5 элементов5 items Список параметров, которые выполняет команда.The list of parameters the command takes. Минимум: 1; максимум: 5.Minimum: 1; maximum: 5.
parameters.name строкаstring 64 символа64 characters Имя параметра в том виде, в котором оно отображается в клиенте.The name of the parameter as it appears in the client. Он включен в запрос пользователя.This is included in the user request.
parameters.title строкаstring 32 символов32 characters Удобное для пользователя название параметра.User-friendly title for the parameter.
parameters.description строкаstring 128 символов128 characters Понятная пользователю строка, описывающая назначение этого параметра.User-friendly string that describes this parameter’s purpose.
parameters.value строкаstring 512 символов512 characters Начальное значение параметра.Initial value for the parameter.
parameters.inputType строкаstring 128 символов128 characters Определяет тип элемента управления, отображаемого в модуле задачи для fetchTask: true .Defines the type of control displayed on a task module forfetchTask: true . Один из text, textarea, number, date, time, toggle, choiceset .One of text, textarea, number, date, time, toggle, choiceset .
parameters.choices массив объектовarray of objects 10 элементов10 items Варианты выбора для choiceset .The choice options for thechoiceset. Используйте только при parameter.inputType наличии choiceset .Use only whenparameter.inputType is choiceset.
parameters.choices.title строкаstring 128 символов128 characters Название выбора.Title of the choice.
parameters.choices.value строкаstring 512 символов512 characters Значение выбора.Value of the choice.

permissionspermissions

Необязательное — массив строкOptional — array of strings

Массив, string определяющий, какие разрешения запрашиваются приложением, что позволяет конечным пользователям знать, как будет выполняться расширение.An array of string which specifies which permissions the app requests, which lets end users know how the extension will perform. Следующие параметры неисключительны:The following options are non-exclusive:

  • identity Требуются сведения об удостоверении пользователяidentity   Requires user identity information
  • messageTeamMembers Требуется разрешение на отправку прямых сообщений участникам группыmessageTeamMembers   Requires permission to send direct messages to team members

Изменение этих разрешений при обновлении приложения приводит к тому, что пользователи будут повторять процесс разрешения при первом запуске обновленного приложения.Changing these permissions when updating your app will cause your users to repeat the consent process the first time they run the updated app. Дополнительные сведения см. в разделе Обновление приложения .See Updating your app for more information.

девицепермиссионсdevicePermissions

Необязательное — массив строкOptional — array of strings

Указывает собственные функции на устройстве пользователя, к которым приложение может запрашивать доступ.Specifies the native features on a user's device that your app may request access to. Возможные варианты:Options are:

  • geolocation
  • media
  • notifications
  • midi
  • openExternal

валиддомаинсvalidDomains

Необязательно, за исключением обязательного места, где отмеченоOptional, except Required where noted

Список допустимых доменов для веб-сайтов, которые приложение ожидает загружать в клиенте Teams.A list of valid domains for websites the app expects to load within the Teams client. Примеры доменов могут включать подстановочные знаки *.example.com .Domain listings can include wildcards, for example *.example.com. Это соответствует только одному сегменту домена; Если вам нужно использовать этот параметр a.b.example.com *.*.example.com .This matches exactly one segment of the domain; if you need to match a.b.example.com then use *.*.example.com. Если конфигурация вкладки или контентный пользовательский интерфейс должны перейти к любому другому домену, Кроме того, что используется для настройки вкладок, этот домен необходимо указать здесь.If your tab configuration or content UI needs to navigate to any other domain besides the one use for tab configuration, that domain must be specified here.

Тем не менее, не нужно включать домены поставщиков удостоверений, которые требуется поддерживать в вашем приложении.It is not necessary to include the domains of identity providers you want to support in your app, however. Например, для проверки подлинности с помощью идентификатора Google необходимо перенаправить на accounts.google.com, но не следует включать accounts.google.com в validDomains[] .For example, to authenticate using a Google ID, it's necessary to redirect to accounts.google.com, but you should not include accounts.google.com in validDomains[].

Приложения Teams, которым для правильной работы требуются собственные URL-адреса SharePoint, могут содержать "{теамситедомаин}" в допустимом списке доменов.Teams apps that require their own sharepoint URLs to function well, may include "{teamsitedomain}" in their valid domain list.

Важно!

Не добавляйте домены за предельный элемент управления (напрямую или с помощью подстановочных знаков).Do not add domains that are outside your control, either directly or via wildcards. Например, yourapp.onmicrosoft.com является допустимым, но *.onmicrosoft.com не является допустимым.For example, yourapp.onmicrosoft.com is valid, but *.onmicrosoft.com is not valid.

Объект является массивом со всеми элементами типа string .The object is an array with all elements of the type string.

webApplicationInfowebApplicationInfo

Необязательный — объектOptional — object

Указание идентификатора приложения и графического объекта AAD для упрощения входа пользователей в приложение AAD.Specify your AAD App ID and Graph information to help users seamlessly sign into your AAD app.

ИмяName ТипType Максимальный размерMaximum size ОбязательныйRequired ОписаниеDescription
id строкаstring 36 символов36 characters Идентификатор приложения AAD приложения.AAD application id of the app. Этот идентификатор должен быть идентификатором GUID.This id must be a GUID.
resource строкаstring 2048 символов2048 characters URL-адрес ресурса приложения для получения маркера проверки подлинности для единого входа.Resource url of app for acquiring auth token for SSO.
applicationPermissions массив строкarray of strings 128 символов128 characters Определение разрешения на уровне отдельных ресурсовSpecify granular resource specific consent

шовлоадингиндикаторshowLoadingIndicator

Необязательный — логическийOptional — boolean

Указывает, следует ли отображать индикатор загрузки при загрузке приложения или вкладки.Indicate whether or not to show the loading indicator when an app/tab is loading. По умолчанию: false.Default: false.

Примечание

Если в манифесте приложения задано значение "Шовлоадингиндикатор: true", то для правильной загрузки страницы необходимо изменить страницы содержимого вкладок и модулей задач в соответствии с протоколом, описанным в статье Показать встроенный документ с индикатором загрузки .If you set "showLoadingIndicator : true" in your app manifest, then for the page to load correctly, you must modify the content pages of your tabs and task modules as per the protocol described in Show a native loading indicator document.

в полноэкранном режимisFullScreen

Необязательный — логическийOptional — boolean

Указывает, где отображается личное приложение с панелью заголовков вкладок или без нее.Indicate where a personal app is rendered with or without a tab-header bar. По умолчанию: false.Default: false.

activitiesactivities

Необязательный — объектOptional — object

Определите свойства, которые ваше приложение будет использовать для публикации в канал активности пользователя.Define the properties your app will use to post to a user activity feed.

ИмяName ТипType Максимальный размерMaximum size ОбязательныйRequired ОписаниеDescription
activityTypes Массив объектовarray of Objects 128 элементов128 items Укажите типы действий, которые ваше приложение может отправлять в канал активности пользователей.Specify the types of activities that your app can post to a users activity feed.

действия. Активититипесactivities.activityTypes

ИмяName ТипType Максимальный размерMaximum size ОбязательныйRequired ОписаниеDescription
type строкаstring 32 символов32 characters Тип уведомления.The notification type. Ознакомьтесь с разделом ниже.See below.
description строкаstring 128 символов128 characters Краткое описание уведомления.A brief description of the notification. Ознакомьтесь с разделом ниже.See below.
templateText строкаstring 128 символов128 characters Пример: "{Actor} создал задачу {taskId} для вас"Ex: "{actor} created task {taskId} for you"
{
   "activities":{
      "activityTypes":[
         {
            "type":"taskCreated",
            "description":"Task Created Activity",
            "templateText":"{actor} created task {taskId} for you"
         },
         {
            "type":"teamMention",
            "description":"Team Mention Activity",
            "templateText":"{actor} mentioned team"
         },
         {
            "type":"channelMention",
            "description":"Channel Mention Activity",
            "templateText":"{actor} mentioned channel"
         },
         {
            "type":"userMention",
            "description":"Personal Mention Activity",
            "templateText":"{actor} mentioned user"
         },
         {
            "type":"calendarForward",
            "description":"Forwarding a Calendar Event",
            "templateText":"{actor} sent user an invite on behalf of {eventOwner}"
         },
         {
            "type":"calendarForward",
            "description":"Forwarding a Calendar Event",
            "templateText":"{actor} sent user an invite on behalf of {eventOwner}"
         },
         {
            "type":"creatorTaskCreated",
            "description":"Created Task Created",
            "templateText":"The Creator created task {taskId} for you"
         }
      ]
   }
}