Поделиться через


Манифест приложения

Манифест приложения (ранее называемый манифестом приложения Teams) описывает, как приложение интегрируется с продуктом Microsoft Teams. Манифест приложения должен соответствовать схеме, размещенной по адресу https://developer.microsoft.com/json-schemas/teams/v1.19/MicrosoftTeams.schema.json. Поддерживаются предыдущие версии 1.0, 1.1,...,1.17 и текущая версия 1.19 (в URL-адресе используется "v1.x"). Версия 1.18 недоступна. Дополнительные сведения об изменениях, внесенных в каждую версию, см . в журнале изменений манифеста приложения , а для предыдущих версий — в разделе Версии манифеста приложения.

В следующей таблице перечислены версии TeamsJS и манифеста приложения в соответствии с различными сценариями приложений.

Тип приложения Версия TeamsJS Версия манифеста приложения Дальнейшие действия
Приложения Teams, расширенные в Outlook и Microsoft 365 TeamsJS версии 2.19.0 или более поздней версии версия 1.13 или более поздняя версия Придайте приложению Teams возможность запуска в Microsoft 365 или создайте новое приложение для Microsoft 365
Существующие приложения только для Teams По возможности обновите TeamsJS версии 2.19.0 (версия 1.12 по-прежнему поддерживается*) 1.12 Изучите обратную совместимость TeamsJS и обновите TeamsJS до версии 2.0
Новые приложения только для Teams TeamsJS версии 2.19.0 или более поздней версии 1.12 Создание нового приложения Teams с помощью "Инструментов Teams"

* Используйте последнюю версию TeamsJS (версии 2.19.0 или более поздней версии), когда это возможно, чтобы воспользоваться преимуществами последних улучшений и поддержки новых функций, включая приложения только для Teams. TeamsJS версии 1.12 по-прежнему поддерживается, однако новые функции или улучшения не добавляются. Схемы 1.12 и 1.13 в противном случае одинаковы. Дополнительные сведения см. в статье Библиотека TeamsJS.

Примечание.

Если приложение Teams использует манифест приложения версии 1.13 или более поздней, убедитесь, что ваше приложение соответствует критериям расширения приложения для работы в Microsoft 365 или Outlook.

Ниже приведен пример схемы манифеста приложения.

Пример манифеста приложения

{
    "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.19/MicrosoftTeams.schema.json",
    "manifestVersion": "1.19",
    "version": "1.0.0",
    "id": "%MICROSOFT-APP-ID%",
    "localizationInfo": {
        "defaultLanguageTag": "en",
        "defaultLanguageFile": "en.json",
        "additionalLanguages": [
            {
                "languageTag": "es",
                "file": "es.json"
            }
        ]
    },
    "developer": {
        "name": "Publisher Name",
        "websiteUrl": "https://example.com/",
        "privacyUrl": "https://example.com/privacy",
        "termsOfUseUrl": "https://example.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.",
    "copilotAgents": {
        "declarativeAgents": [
            {
                "id": "agent1",
                "file": "declarativeAgent1.json"
            }
        ]
    },
    "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)"
        }
    ],
    "supportedChannelTypes": [
        "sharedChannels",
        "privateChannels"
    ],
    "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": "choiceset",
                            "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., Add a customer",
                    "initialRun": true,
                    "fetchTask": false ,
                    "parameters": [
                        {
                            "name": "custinfo",
                            "title": "Customer name",
                            "description": "Enter a customer name",
                            "inputType": "text"
                        }
                    ]
                },
                {
                    "id": "exampleCmd3",
                    "title": "Example Command 3",
                    "type": "action",
                    "context": [
                        "compose",
                        "commandBox",
                        "message"
                    ],
                    "description": "Command Description; e.g., Add a customer",
                    "fetchTask": false,
                    "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"
                        ],
                        "supportsAnonymizedPayloads": false
                    }
                }
            ]
        }
    ],
    "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"
    },
    "authorization": {
        "permissions": {
            "resourceSpecific": [
                {
                    "type": "Application",
                    "name": "ChannelSettings.Read.Group"
                },
                {
                    "type": "Delegated",
                    "name": "ChannelMeetingParticipant.Read.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"
            }
        ]
    },
    "defaultBlockUntilAdminAction": true,
    "publisherDocsUrl": "https://example.com/app-info",
    "defaultInstallScope": "meetings",
    "defaultGroupCapability": {
        "meetings": "tab",
        "team": "bot",
        "groupchat": "bot"
    },
    "configurableProperties": [
        "name",
        "shortDescription",
        "longDescription",
        "smallImageUrl",
        "largeImageUrl",
        "accentColor",
        "developerUrl",
        "privacyUrl",
        "termsOfUseUrl"
    ],
    "subscriptionOffer": {
        "offerId": "publisherId.offerId"
    },
    "meetingExtensionDefinition": {
        "scenes": [
            {
                "id": "9082c811-7e6a-4174-8173-6ccd57d377e6",
                "name": "Getting started sample",
                "file": "scenes/sceneMetadata.json",
                "preview": "scenes/scenePreview.png",
                "maxAudience": 15,
                "seatsReservedForOrganizersOrPresenters": 0
            },
            {
                "id": "afeaed22-f89b-48e1-98b4-46a514344e4a",
                "name": "Sample-1",
                "file": "scenes/sceneMetadata.json",
                "preview": "scenes/scenePreview.png",
                "maxAudience": 15,
                "seatsReservedForOrganizersOrPresenters": 3
            }
        ]
    }
}

Схема определяет следующие свойства:

$schema

Необязательный, но рекомендуется — String

URL-адрес https://, ссылающийся на схему JSON для манифеста приложения.

manifestVersion

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

Версия схемы манифеста приложения, которую использует этот манифест. Используйте 1.13 , чтобы включить поддержку приложений Teams в Outlook и приложении Microsoft 365; используйте 1.12 (или более ранние версии) для приложений, доступных только для Teams.

version

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

Версия определенного приложения. При обновлении чего-либо в манифесте приложения версия также должна быть увеличена. Таким образом, при установке нового манифеста приложения он перезаписывает существующий, и пользователь получает новые функции. При отправке этого приложения в Microsoft Teams Store необходимо повторно отправить и повторно проверить новый манифест приложения. Пользователи приложения автоматически получают новый обновленный манифест приложения в течение нескольких часов после утверждения манифеста приложения.

Если приложение запрашивает изменение разрешений, пользователям будет предложено обновить приложение и заново предоставить ему согласие.

Строка версии должна соответствовать стандарту semver(ОСНОВНАЯ_ВЕРСИЯ.ДОПОЛНИТЕЛЬНАЯ_ВЕРСИЯ.ИСПРАВЛЕНИЕ).

Примечание.

Если приложение включает надстройку Office, каждый сегмент строки версии ограничен пятью цифрами. Расширения строк предварительной версии и версии метаданных стандарта semver не поддерживаются.

ИД

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

Это уникальный идентификатор, сформированный для приложения корпорацией Майкрософт. Идентификатор имеет формат GUID. У вас есть идентификатор, если бот зарегистрирован с помощью Microsoft Bot Framework. У вас есть идентификатор, если веб-приложение вашей вкладке уже входит в систему с учетной записью Майкрософт. Здесь необходимо ввести этот идентификатор. В противном случае необходимо создать новый идентификатор на портале регистрации приложений Майкрософт. При добавлении бота используйте этот же идентификатор.

Идентификатор, хранящийся в Teams Администратор Center, является идентификатором внешнего приложения и отображается в трассировке как ExternalID.

Примечание.

Если вы отправляете обновление для существующего приложения в AppSource, идентификатор в манифесте приложения изменять нельзя.

developer

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

Указывает сведения о вашей компании. Для приложений, отправленных в Магазин Teams, эти значения должны соответствовать сведениям в описании в Магазине Teams. Дополнительные сведения см. в руководстве по публикации в Магазине Teams. Имя разработчика помогает улучшить возможности обнаружения приложений в Магазине Teams.

Имя Тип Максимальный размер Обязательный Описание
name String 32 символа ✔️ Отображаемое имя для разработчика.
websiteUrl String 2048 символов ✔️ URL-адрес веб-сайта разработчика (https://). По этой ссылке пользователи должны переходить на целевую страницу вашей компании или конкретного продукта.
privacyUrl String 2048 символов ✔️ URL-адрес политики конфиденциальности разработчика (https://).
termsOfUseUrl String 2048 символов ✔️ URL-адрес условий использования разработчика (https://).
mpnId String 10 символов Необязательный Идентификатор программы Microsoft Cloud Partner Program (ранее известный как Идентификатор Microsoft Partner Network (MPN), который идентифицирует партнерская организация, создающая приложение.

name

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

Имя интерфейса приложения, отображаемое для пользователей в интерфейсе Teams. Для приложений, отправляемых в AppSource, эти значения должны совпадать с данными в записи AppSource. Значения short и full должны отличаться. Имя приложения помогает улучшить возможности обнаружения приложений в Магазине Teams.

Имя Тип Максимальный размер Обязательный Описание
short String 30 символов ✔️ Краткое отображаемое имя приложения. Используйте short свойство, в котором пространство ограничено, например заголовок приложения.
full String 100 символов ✔️ Полное имя приложения. Используется, если длина полного имени приложения превышает 30 символов. Используйте full свойство, где больше места, например в каталоге приложений или на странице сведений о приложении.

Примечание.

  • В манифесте приложения версии 1.17 или более поздней full свойство является обязательным, а для манифеста приложения версии 1.16 или более ранней оно не требуется.
  • Свойство short используется во всех поверхностях пользовательского интерфейса.

description

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

Описывает приложение для пользователей. Для приложений, отправляемых в AppSource, эти значения должны совпадать с данными в записи AppSource. Описание приложения помогает улучшить возможности обнаружения приложений в Магазине Teams.

Убедитесь, что описание включает возможности приложения и его назначение для потенциальных клиентов. В полном описании также необходимо указать, нужно ли использовать внешнюю учетную запись. Значения short и full должны отличаться. Краткое описание не может повторяться в длинном описании и не должно содержать другое имя приложения.

Имя Тип Максимальный размер Обязательный Описание
short String 80 символов ✔️ Краткое описание возможностей приложения. Используется, когда доступно ограниченное пространство.
full String 4000 символов ✔️ Полное описание приложения.

localizationInfo

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

Разрешает спецификацию языка по умолчанию и указатели на дополнительные языковые файлы. См.Локализация

Имя Тип Максимальный размер Обязательный Описание
defaultLanguageTag String ✔️ Тег языка для строк в этом файле манифеста приложения верхнего уровня. Значение по умолчанию: en-us.
defaultLanguageFile String 2048 символов Относительный путь к файлу .json, который содержит строки. Если не указано, строки берутся непосредственно из файла манифеста приложения. Для агентов Copilot, поддерживающих несколько языков, требуется файл языка по умолчанию.

localizationInfo.additionalLanguages

Массив объектов со следующими свойствами для указания дополнительных языковых переводов.

Имя Тип Максимальный размер Обязательный Описание
languageTag String ✔️ Тег языка строк в предоставленном файле. Пример: es
file String 2048 символов ✔️ Относительный путь к файлу .json, который содержит переведенные строки.

icons

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

Значки, используемые в приложении Teams. Файлы значков должны быть включены в отправляемый пакет. Дополнительные сведения см. в статье Значки.

Имя Тип Максимальный размер Обязательный Описание
outline String 32 x 32 пикселя ✔️ Относительный путь к прозрачному значку контура размером 32x32 пикселя в формате PNG. Цвет границы должен быть белым.
color String 192 x 192 пикселя ✔️ Относительный путь к полноцветному значку размером 192x192 пикселя в формате PNG.

accentColor

Обязательный — код шестнадцатеричного цвета HTML

Цвет для использования и в качестве фона для цветовых значков.

Значение должно быть допустимым шестнадцатеричным кодом цвета HTML и должно начинаться с "#". Пример: #4464ee. Дополнительные сведения см. в разделе accentColor.

copilotAgents

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

Определяет один или несколько агентов для Microsoft 365 Copilot. Декларативные агенты — это настройки Microsoft 365 Copilot, которые выполняются в одной и той же модели оркестратора и базовой модели.

Имя Тип Максимальный размер Обязательный Описание
declarativeAgents Массив объектов 1 ✔️ Массив объектов, каждый из которых определяет декларативный агент.

declarativeAgents

Представляет настройку Microsoft 365 Copilot, как определено в файле манифеста.

Имя Тип Максимальный размер Обязательный Описание
id String ✔️ Уникальный идентификатор агента. При использовании Microsoft Copilot Studio для создания агентов создается автоматически. В противном случае назначьте значение вручную в соответствии с собственными соглашениями или предпочтениями.
file String 2048 символов ✔️ Относительный путь к файлу в пакете приложения к файлу манифеста декларативного агента .

configurableTabs

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

Используется, когда в интерфейсе приложения есть интерфейс вкладки канала команды, который требует дополнительной настройки перед добавлением. Настраиваемые вкладки поддерживаются только в областях team и groupChat. Одни и те же вкладки можно настраивать несколько раз. Однако его можно определить в манифесте приложения только один раз.

Имя Тип Максимальный размер Обязательный Описание
configurationUrl String 2048 символов ✔️ URL-адрес, используемый при настройке вкладки (https://).
scopes Массив перечислений 2 ✔️ Настраиваемые вкладки поддерживают только team области и groupChat .
canUpdateConfiguration Логический Значение, указывающее, может ли пользователь обновлять конфигурацию вкладки после ее создания.
Значение по умолчанию: true
meetingSurfaces Массив перечислений 2 Набор областей meetingSurfaceItem, в которых поддерживается вкладка.
Значения по умолчанию: sidePanel, stage
context Массив перечислений 8 Набор областей contextItem, в которых поддерживается вкладка. Принятое значение: [personalTab, channelTab, privateChatTab, meetingChatTab, meetingDetailsTab, meetingSidePanel, meetingStage].
sharePointPreviewImage String 2048 символов Относительный путь к изображению предварительного просмотра вкладок для использования в SharePoint. Размер: 1024x768.
supportedSharePointHosts Массив перечислений 2 Определяет, каким образом вкладка становится доступна в SharePoint. Параметры: sharePointFullPage и sharePointWebPart.

staticTabs

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

Определяет набор вкладок, которые можно закрепить по умолчанию без добавления пользователем их вручную. Статические вкладки,объявляемые в области personal, всегда закрепляются в личном интерфейсе приложения.

Этот элемент — массив (не более 16 элементов) со всеми элементами типа object. Этот блок требуется только для решений со статическими вкладками.

Имя Тип Максимальный размер Обязательный Описание
entityId String 64 символа ✔️ Уникальный идентификатор сущности, отображаемый на вкладке.
name String 128 символов Отображаемое имя вкладки.
contentUrl String 2048 символов URL-адрес, указывающий на пользовательский интерфейс объекта для отображения на холсте Microsoft Teams (https://).
contentBotId String 128 символов Идентификатор приложения Майкрософт, указанный для бота на портале Bot Framework.
websiteUrl String 2048 символов URL-адрес, используемый, если пользователь выбирает просмотр в браузере (https://).
searchUrl String 2048 символов URL-адрес, используемый для поисковых запросов пользователя (https://).
scopes Массив перечислений 3 ✔️ Указывает, предлагает ли вкладка интерфейс в контексте канала в команде или интерфейс, ограниченный отдельным пользователем или групповым чатом. Статические вкладки поддерживают personal только область.
context Массив перечислений 8 Набор контекстов contextItem , в которых поддерживается вкладка.
Допустимые значения: personalTab, channelTab, privateChatTab, meetingChatTab, meetingDetailsTab, meetingStage, meetingSidepanel, . teamLevelApp
Значения по умолчанию: personalTab, channelTab, privateChatTab, meetingChatTab. meetingDetailsTab

Примечание.

bots

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

Определяет решение бота, а также дополнительные сведения, такие как свойства команды по умолчанию.

Элемент представляет собой массив (не более одного элемента — для каждого приложения разрешен только один бот) со всеми элементами типа object. Этот блок требуется только для решений, предоставляющих возможности бота.

Имя Тип Максимальный размер Обязательный Описание
botId String ✔️ Уникальный идентификатор приложения Майкрософт для бота, зарегистрированный в Bot Framework. Этот идентификатор может совпадать с общим идентификатором приложения.
scopes Массив перечислений 3 ✔️ Указывает, предлагает ли бот функции в контексте канала в team, в групповом чате (groupChat) или функции, ограниченные только отдельным пользователем (personal). Эти параметры не являются исключающими.
needsChannelSelector Логический Описывает, использует ли бот подсказки пользователя для добавления бота в определенный канал.
Значение по умолчанию: false
isNotificationOnly Логический Указывает, является ли бот односторонним и только для уведомлений, в отличие от бота для беседы.
Значение по умолчанию: false
supportsFiles Логический Указывает, поддерживает ли бот возможность отправки и скачивания файлов в личном чате.
Значение по умолчанию: false
supportsCalling Boolean Значение, указывающее, поддерживает ли бот голосовые звонки. ВАЖНО! Это свойство является экспериментальным. Экспериментальные свойства могут быть неполными и могут быть изменены, прежде чем они станут полностью доступны. Это свойство предоставлено только для тестирования и исследования, его не следует использовать в рабочих приложениях.
Значение по умолчанию: false
supportsVideo Boolean Значение, указывающее, поддерживает ли бот видеозвонки. ВАЖНО! Это свойство является экспериментальным. Экспериментальные свойства могут быть неполными и могут быть изменены, прежде чем они станут полностью доступны. Это свойство предоставлено только для тестирования и исследования, его не следует использовать в рабочих приложениях.
Значение по умолчанию: false

bots.configuration

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

Имя Тип Максимальный размер Обязательный Описание
team.fetchTask Логический ✔️ Логическое значение, указывающее, следует ли динамически получать диалоговое окно (называемое модулем задач в TeamsJS версии 1.x).
Значение по умолчанию: false
team.taskInfo Объект ✔️ Диалоговое окно для предварительной загрузки при использовании бота
team.taskInfo.title String 64 символа ✔️ Начальное название диалогового окна
team.taskInfo.width String 16 символов Ширина диалогового окна — это число в пикселях или макет по умолчанию, например large, mediumили small.
team.taskInfo.height String 16 символов Высота диалогового окна — это число в пикселях или макет по умолчанию, например large, mediumили small.
team.taskInfo.url String 2048 символов Начальный URL-адрес веб-представления.
groupChat.fetchTask Логический ✔️ Логическое значение, указывающее, следует ли динамически получать диалоговое окно.
Значение по умолчанию: false
groupChat.taskInfo Объект Диалоговое окно, запускаемое при выборке задачи, заданной значением false.
Значение по умолчанию: false
groupChat.taskInfo.title String 64 символа ✔️ Начальное название диалогового окна
groupChat.taskInfo.width String 16 Ширина диалогового окна — это число в пикселях или макет по умолчанию, например large, mediumили small.
groupChat.taskInfo.height String 16 Высота диалогового окна — это число в пикселях или макет по умолчанию, например large, mediumили small.
groupChat.taskInfo.url String 2048 символов Начальный URL-адрес веб-представления.

bots.commandLists

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

Список команд, которые ваш бот может рекомендовать пользователям. Объект представляет собой массив (не более трех элементов) со всеми элементами типа object; необходимо определить отдельный список команд для каждого область, поддерживаемых ботом. Подробнее см. в статье Меню ботов.

Имя Тип Максимальный размер Обязательный Описание
scopes Массив перечислений 3 ✔️ Указывает область, для которой действует список команд. Возможны значения team, personal и groupChat.
commands Массив объектов 10 ✔️ Массив команд, поддерживаемых ботом.

Примечание.

Мобильный клиент Teams не поддерживает приложение бота, если в свойстве commandLists нет значения.

bots.commandLists.commands

Обязательный элемент — массив

Имя Тип Максимальный размер Обязательный Описание
title String 32 ✔️ Имя команды бота.
description String 128 символов ✔️ Простое текстовое описание или пример синтаксиса команды и ее аргументов.

connectors

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

Блок connectors определяет карта соединителя для Группы Microsoft 365 приложения.

Объект — массив (не более одного элемента) со всеми элементами типа object. Этот блок необходим только для решений, предоставляющих соединители.

Имя Тип Максимальный размер Обязательный Описание
configurationUrl String 2048 символов ✔️ URL-адрес https://, используемый при настройке соединителя с помощью встроенного интерфейса конфигурации.
scopes Массив перечислений 1 ✔️ Указывает, предоставляет ли соединитель возможности в контексте канала в team или только для отдельных пользователей (personal). Поддерживается team только область.
connectorId String 64 символа ✔️ Уникальный идентификатор соединителя, соответствующий его идентификатору на информационной панели разработчиков соединителей.

composeExtensions

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

Определяет расширение для обмена сообщениями для приложения.

Примечание.

В ноябре 2017 г. имя функции было изменено с "compose extension" на "расширение сообщений", но имя манифеста приложения остается прежним, чтобы существующие расширения продолжали функционировать.

Этот элемент — массив (не более одного элемента) со всеми элементами типа object. Этот блок необходим только для решений, предоставляющих расширение для сообщений.

Имя Тип Максимальный размер Обязательный Описание
botId String Уникальный идентификатор приложения Microsoft для бота, поддерживающего расширение для обмена сообщениями, в соответствии с регистрацией в Bot Framework. Этот идентификатор может совпадать с общим идентификатором приложения.
composeExtensionType String ✔️ Тип расширения compose. Значения перечисления: botBased и apiBased.
authorization Объект 2 Сведения об авторизации для расширения сообщений на основе API.
authorization.authType String Перечисление возможных типов авторизации. Поддерживаемые значения: none, apiSecretServiceAuthи microsoftEntra.
authorization.microsoftEntraConfiguration Объект Объект, фиксирующий сведения, необходимые для выполнения потока проверки подлинности microsoftEntra. Применимо, только если тип проверки подлинности имеет значение microsoftEntra.
authorization.microsoftEntraConfiguration.supportsSingleSignOn Логический Значение , указывающее, настроен ли единый вход для приложения.
authorization.apiSecretServiceAuthConfiguration Объект Объект, фиксирующий сведения, необходимые для проверки подлинности службы. Применимо, только если тип проверки подлинности имеет значение apiSecretServiceAuth.
authorization.apiSecretServiceAuthConfiguration.apiSecretRegistrationId String 128 символов Идентификатор регистрации возвращается, когда разработчик отправляет ключ API через портал разработчика.
apiSpecificationFile String 2048 символов Относительный путь к файлу спецификации API в пакете манифеста.
canUpdateConfiguration Логический Значение , указывающее, может ли пользователь обновить конфигурацию расширения сообщений.
Значение по умолчанию: false
commands Массив объектов 10 ✔️ Массив команд, поддерживаемых расширением для обмена сообщениями.
messageHandlers Массив объектов 5 Список обработчиков, которые позволяют вызывать приложение при выполнении определенных условий.
messageHandlers.type String Тип обработчика сообщений. Должно быть задано значение link.
messageHandlers.value.domains Массив строк 2048 символов Массив доменов, на которые может зарегистрироваться обработчик сообщений ссылок.
messageHandlers.value.supportsAnonymizedPayloads Логический Логическое значение, указывающее, поддерживает ли обработчик сообщений связи приложения анонимный поток вызова.
Значение по умолчанию: false

composeExtensions.commands

Расширение для обмена сообщениями должно объявить одну или несколько, но не более 10 команд. Каждая команда отображается в Microsoft Teams как потенциальное взаимодействие с точки входа на основе пользовательского интерфейса.

Каждый элемент команды представляет собой объект со следующей структурой:

Имя Тип Максимальный размер Обязательный Описание
id String 64 символа ✔️ ИД команды.
type String Тип команды. Либо query, либо action.
Значение по умолчанию: query
samplePrompts Array 5 Свойство, используемое Microsoft 365 Copilot для отображения пользователю запросов, поддерживаемых подключаемым модулем.
samplePrompts.text String 128 символов ✔️ Содержимое примера запроса.
apiResponseRenderingTemplateFile String 2048 символов Относительный путь к файлу шаблона отрисовки ответа API, используемого для форматирования ответа JSON от API разработчика до ответа адаптивной карточки.
context Массив строк 3 Определяет, откуда можно вызвать расширение сообщения. Любое сочетание compose, commandBox, message.
Значения по умолчанию: compose, commandBox
title String 32 символа ✔️ Понятное имя команды.
description String 128 символов Описание назначения команды, которое отображается для пользователей.
semanticDescription String 5000 символов Семантическое описание команды для использования Microsoft 365 Copilot с помощью больших языковых моделей (LLM).
initialRun Логический Логическое значение указывает, выполняется ли команда изначально без параметров.
Значение по умолчанию: false
fetchTask Логический Логическое значение, указывающее, должен ли он получать диалоговое окно (называемое модулем задач в TeamsJS версии 1.x) динамически.
Значение по умолчанию: false
taskInfo Объект Укажите диалоговое окно для предварительной загрузки при использовании команды расширения сообщений.
taskInfo.title String 64 символа Начальное название диалогового окна
taskInfo.width String Ширина диалогового окна — число в пикселях или значения макета по умолчанию, например large, mediumили small.
taskInfo.height String Высота диалогового окна — число в пикселях или значения макета по умолчанию, такие как large, mediumили small.
taskInfo.url String Начальный URL-адрес веб-представления.
parameters Массив объектов 5 Список параметров, которые принимает команда.
parameters.name String 64 символа ✔️ Имя параметра в том виде, в каком оно отображается в клиенте. Имя параметра включено в запрос пользователя.
parameters.title String 32 символа ✔️ Понятное название параметра.
parameters.description String 128 символов Понятное описание назначения параметра.
parameters.semanticDescription String 2000 символов Семантическое описание параметра для использования Microsoft 365 Copilot с использованием больших языковых моделей (LLM).
parameters.value String 512 символов Начальное значение параметра. Значение не поддерживается.
parameters.inputType String Определяет тип элемента управления, отображаемого в диалоговом окне для fetchTask: false. Входное значение может быть только одним из значений text, textarea, number, date, timetoggle, . choiceset
Значение по умолчанию: text
parameters.choices Массив объектов 10 элементов Варианты выбора дляchoiceset. Используйте только если parameters.inputType является choiceset.
parameters.choices.title String 128 символов ✔️ Название выбора.
parameters.choices.value String 512 символов ✔️ Значение выбора.

permissions

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

Массив элементов string, указывающий, какие разрешения запрашивает приложения, что дает возможность конечным пользователям определить, что именно делает расширение. Следующие параметры не являются взаимоисключающими:

  • identity Требуются сведения удостоверения пользователя.
  • messageTeamMembers Требуется разрешение на отправку прямых сообщений участникам группы.

Если изменить эти разрешения при обновлении приложения, пользователям потребуется вновь согласиться на предоставление этих разрешений при запуске обновленного приложения. Дополнительные сведения см. в статье Обновление приложения.

Примечание.

Разрешения теперь являются нерекомендуемыми.

devicePermissions

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

Предоставляет собственные функции на устройстве пользователя, к которому приложение запрашивает доступ. Доступные варианты:

  • geolocation
  • media
  • notifications
  • midi
  • openExternal

validDomains

Необязательный (за исключением обязательного , если указано) — массив строк

Список допустимых доменов для веб-сайтов, которые приложение может загружать в клиенте Teams. Списки доменов могут включать подстановочные знаки, например *.example.com. Допустимый домен соответствует только одному сегменту домена. Если нужно соответствие a.b.example.com, то используйте *.*.example.com. Если конфигурация вкладки или пользовательский интерфейс контента переходит на любой другой домен, отличный от конфигурации вкладки, то этот домен нужно указать здесь.

Не включайте домены поставщиков удостоверений, которые необходимо поддерживать в приложении. Например, для проверки подлинности с помощью идентификатора Google необходимо перенаправить на accounts.google.com, однако не следует включать accounts.google.com в validDomains[].

Приложения Teams, которым для правильной работы требуются собственные URL-адреса SharePoint, включают "{teamsitedomain}" в список допустимых доменов.

Важно!

Не добавляйте домены, которые находятся вне вашего контроля, напрямую или с помощью подстановочных знаков (). Например,.yoursite.com является допустимым, но *.onmicrosoft.com является недопустимым, так как он не находится под вашим контролем.

При использовании подстановочных знаков применяются следующие правила:

  • Если сегмент поддомена содержит подстановочный знак, он должен быть единственным символом в сегменте.
  • Любой сегмент, предшествующий сегменту с подстановочными знаками, также должен быть подстановочным.

Например, *.*.domain.com является допустимым, но foo.*.myteam.domain.com недопустим.

Объект — массив со всеми элементами типа string. Максимальное число элементов объекта — 16, а максимальная длина — 2048 символов.

webApplicationInfo

Примечание.

Свойство webApplicationInfo связано с одним доменом и не поддерживается для нескольких доменов. Таким образом, если у вас есть два приложения, размещенных в разных доменах, необходимо создать отдельные манифесты приложений для каждого приложения.

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

Укажите идентификатор приложения Microsoft Entra и сведения о Microsoft Graph, чтобы пользователи легко входить в приложение. Если приложение зарегистрировано в Microsoft Entra ID, необходимо указать идентификатор приложения. Администраторы могут проверять разрешения и предоставлять согласие в центре администрирования Teams.

Имя Тип Максимальный размер Обязательный Описание
id String ✔️ Microsoft Entra идентификатор приложения. Этот идентификатор должен быть глобальным уникальным идентификатором.
resource String 2048 символов URL-адрес ресурса приложения для получения маркера проверки подлинности для единого входа.
ЗАМЕТКА: Если вы не используете единый вход, введите фиктивное строковое значение в этом поле в манифест приложения, например, https://example чтобы избежать ответа об ошибке. Фиктивное строковое значение URL-адреса не должно содержать домены или URL-адреса, которые не входят в ваш контроль, напрямую или через подстановочные знаки. Например, yourapp.onmicrosoft.com является допустимым, но *.onmicrosoft.com недопустимым. Домены верхнего уровня запрещены, например *.com, *.org.

graphConnector

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

Укажите конфигурацию соединителя Graph приложения. Если он присутствует, необходимо также указать webApplicationInfo.id .

Имя Тип Максимальный размер Обязательный Описание
notificationUrl String 2048 символов ✔️ URL-адрес, по которому должны отправляться уведомления Graph-соединителя для приложения.

showLoadingIndicator

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

Указывает, следует ли отображать индикатор загрузки при загрузке приложения или вкладки. Значение по умолчанию: false.

Примечание.

  • Если в манифесте приложения выбрано showLoadingIndicator значение true, чтобы правильно загрузить страницу, измените страницы содержимого вкладок и диалоговых окон, как описано в разделе Отображение собственного индикатора загрузки .
  • Если не изменить страницы содержимого вкладки, приложение вкладки не загружается и отображает ошибку There was a problem reaching this app.

isFullScreen

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

Указывает, отображается ли личное приложение без панели заголовка вкладки (что означает полноэкранный режим). Значение по умолчанию: false

Примечание.

  • isFullScreen работает только с приложениями, опубликованными в вашей организации. Переданные и опубликованные сторонние приложения не могут использовать это свойство (оно игнорируется).

  • Параметр isFullScreen=true устраняет строку заголовка и заголовок, предоставляемые Teams, из личных приложений и диалоговых окон. Однако рекомендуется не использовать isFullScreen=true параметр с приложениями чат-бота.

activities

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

Определите свойства, которые приложение использует для публикаций в ленте новостей пользователя.

Имя Тип Максимальный размер Обязательный Описание
activityTypes Массив объектов 128 элементов Укажите типы действий, которые приложение может публиковать в канале новостей пользователей.

activities.activityTypes

Имя Тип Максимальный размер Обязательный Описание
type String 64 символа ✔️ Тип уведомления.
description String 128 символов ✔️ Краткое описание уведомления.
templateText String 128 символов ✔️ Пример: "Пользователь {actor} создал для вас задачу {taskId}"
{
   "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"
         }
      ]
   }
}

defaultInstallScope

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

Указывает область установки, заданную для этого приложения по умолчанию. Определенный область — это параметр, отображаемый на кнопке, когда пользователь пытается добавить приложение. Доступные варианты:

  • personal
  • team
  • groupChat
  • meetings

defaultGroupCapability

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

При выборе групповой установки область определяется возможность по умолчанию при установке приложения пользователем.

Имя Тип Максимальный размер Обязательный Описание
team String Если выбрана область установки team, в этом поле указывается доступная по умолчанию емкость. Варианты: tab, bot или connector.
groupchat String Если выбрана область установки groupChat, в этом поле указывается доступная по умолчанию емкость. Варианты: tab, bot или connector.
meetings String Если выбрана область установки meetings, в этом поле указывается доступная по умолчанию емкость. Варианты: tab, bot или connector.

configurableProperties

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

Блок configurableProperties определяет свойства приложений, доступные для настройки администраторам Teams. Дополнительные сведения см. в разделе включение настройки приложения. Функция настройки приложений не поддерживается в пользовательских приложениях или пользовательских приложениях, созданных для вашей организации (бизнес-приложениях).

Примечание.

Необходимо определить хотя бы одно свойство. В этом блоке можно определить не более 9 свойств.

Можно определить любое из следующих свойств:

  • name: отображаемое имя приложения.
  • shortDescription: краткое описание приложения.
  • longDescription: длинное описание приложения.
  • smallImageUrl: значок структуры приложения.
  • largeImageUrl: значок цвета приложения.
  • accentColor: используемый цвет и фон для значков контура.
  • developerUrl: URL-адрес HTTPS веб-сайта разработчика.
  • privacyUrl: URL-адрес HTTPS политики конфиденциальности разработчика.
  • termsOfUseUrl: URL-адрес HTTPS условий использования разработчика.

supportedChannelTypes

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

Включает приложение в нестандартных каналах. Если приложение поддерживает область группы и это свойство определено, то Teams соответствующим образом включает ваше приложение в каждом типе канала. Свойство supportedChannelTypes поддерживает sharedChannels только и privateChannels.

Примечание.

defaultBlockUntilAdminAction

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

Если для свойства defaultBlockUntilAdminAction установлено значение true, приложение по умолчанию будет скрыто от пользователей, пока администратор не разрешит его. Если установлено значение true, приложение будет скрыто для всех клиентов и конечных пользователей. Администраторы клиента видят приложение в центре администрирования Teams и могут разрешить или заблокировать приложение. Значение по умолчанию — false. Дополнительные сведения о блокировке приложений по умолчанию см. в статье Блокировка приложений по умолчанию для пользователей до утверждения администратором.

publisherDocsUrl

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

Максимальный размер — 2048 символов

Значение publisherDocsUrl параметра — это безопасный URL-адрес HTTPS для документации по приложению и страницы сведений, которые разработчики приложений решили предоставить. Администраторы клиента получают документацию о приложении по этому URL-адресу. Центр администрирования Teams отображает URL-адрес на странице сведений о приложении. Документация может содержать инструкции для администраторов по упрощению внедрения и развертывания приложений. В документацию по приложению можно также включить инструкции или сведения о приложении, которые полезны для администратора клиента, пользователей и других заинтересованных лиц.

subscriptionOffer

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

Указывает предложение SaaS, связанное с приложением.

Имя Тип Максимальный размер Обязательный Описание
offerId String 2048 символов ✔️ Уникальный идентификатор, включающий идентификатор Publisher и идентификатор предложения, которые можно найти в Центре партнеров. Эта строка должна быть в формате: publisherId.offerId .

meetingExtensionDefinition

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

Укажите определение расширения собрания. Дополнительные сведения см. в статье Настраиваемые сцены режима "Вместе" в Teams.

Имя Тип Максимальный размер Обязательный Описание
scenes Массив объектов 5 элементов Сцены, поддерживаемые собранием.
supportsStreaming Логическое Значение, указывающее, может ли приложение передавать звуковое и видеосодержимое собрания в конечную точку по протоколу RTMP.
Значение по умолчанию: false
supportsAnonymousGuestUsers Логический Значение типа , указывающее, поддерживает ли приложение доступ для анонимных пользователей.
Значение по умолчанию: false

Примечание.

Свойство supportsAnonymousGuestUsers в схеме манифеста приложения версии 1.16 поддерживается только в новом клиенте Teams.

meetingExtensionDefinition.scenes

Имя Тип Максимальный размер Обязательный Описание
id String ✔️ Уникальный идентификатор сцены. Этот идентификатор должен быть глобальным уникальным идентификатором.
name String 128 символов ✔️ Имя сцены.
file String 2048 символов ✔️ Относительный путь к файлу JSON метаданных сцен.
preview String 2048 символов ✔️ Относительный путь к файлу значка предварительного просмотра PNG сцен.
maxAudience Integer 50 ✔️ Максимальное количество аудиторий, поддерживаемых в сцене.
seatsReservedForOrganizersOrPresenters Integer 50 ✔️ Количество мест, зарезервированных для организаторов или докладчиков.

авторизация

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

Примечание.

authorization поддерживается только для манифеста приложения версии 1.12 или более поздней.

Укажите и консолидируйте сведения об авторизации для приложения.

Имя Тип Максимальный размер Обязательный Описание
permissions Object Список разрешений, необходимых приложению для работы.

authorization.permissions

Имя Тип Максимальный размер Обязательный Описание
resourceSpecific Массив объектов 16 элементов Разрешения, защищающие доступ к данным на уровне экземпляров ресурсов.

authorization.permissions.resourceSpecific

Имя Тип Максимальный размер Обязательный Описание
type String ✔️ Тип разрешения на согласие для конкретного ресурса (RSC). Варианты: Application и Delegated.
name String 128 символов ✔️ Имя разрешения RSC. Дополнительные сведения см. в разделах Разрешения приложений RSC и Делегированные разрешения RSC.

Разрешения приложений RSC

Разрешения приложений позволяют приложению получать доступ к данным без необходимости входа пользователя. Сведения о разрешениях приложений см. в разделах Разрешения RSC для Microsoft Graph и Microsoft BotSDK.

Делегированные разрешения RSC

Делегированные разрешения позволяют приложению получать доступ к данным от имени вошедшего пользователя.

  • Делегированные разрешения RSC для команды

    Название Описание
    ChannelMeetingParticipant.Read.Group Позволяет приложению читать сведения об участниках, включая имя, роль, идентификатор, время присоединения и ухода, собрания канала, связанные с этой командой, от имени выполнившего вход пользователя.
    ChannelMeetingIncomingAudio.Detect.Group Позволяет приложению обнаруживать входящие звуки в собраниях канала, связанных с командой.
    ChannelMeetingActiveSpeaker.Read.Group Позволяет приложению считывать участников, отправляющих звук на собрания канала, связанные с командой.
    ChannelMeetingAudioVideo.Stream.Group Позволяет приложению передавать аудио-видеоматериалы из собраний канала, связанных с командой.
    InAppPurchase.Allow.Group Позволяет приложению показывать предложения Marketplace пользователям в команде и совершать покупки в приложении от имени пользователя, выполнившего вход.
    ChannelMeetingStage.Write.Group Позволяет приложению отображать содержимое на этапе собрания в собраниях канала, связанных с командой, от имени вошедшего пользователя.
    LiveShareSession.ReadWrite.Group Позволяет приложению создавать и синхронизировать сеансы Live Share для команды, а также получать доступ к связанной информации, например имени и роли, о списке команды и любых связанных собраниях от имени пользователя, выполнившего вход.
    MeetingParticipantReaction.Read.Group Позволяет приложению считывать реакции участников на собраниях канала, связанных с командой.
  • Делегированные разрешения RSC для чатов или собраний

    Название Описание
    InAppPurchase.Allow.Chat Позволяет приложению показывать предложения Marketplace пользователям в чате и любом связанном собрании, а также совершать покупки в приложении от имени пользователя, выполнившего вход.
    MeetingStage.Write.Chat Позволяет приложению отображать содержимое на этапе собрания в собраниях, связанных с чатом, от имени вошедшего в систему пользователя.
    OnlineMeetingParticipant.Read.Chat Позволяет приложению считывать сведения об участниках, включая имя, роль, идентификатор, присоединенное и левое время собрания, связанного с чатом, от имени пользователя, выполнившего вход.
    OnlineMeetingParticipant.ToggleIncomingAudio.Chat Позволяет приложению переключать входящий звук для участников собраний, связанных с чатом, от имени вошедшего в систему пользователя.
    LiveShareSession.ReadWrite.Chat Позволяет приложению создавать и синхронизировать сеансы Live Share для чата и получать доступ к связанной информации, например имени и роли, о списке чата и любых связанных собраниях от имени пользователя, выполнившего вход.
    MeetingParticipantReaction.Read.Chat Позволяет приложению считывать реакции участников собраний, связанных с чатом.
    OnlineMeetingIncomingAudio.Detect.Chat Позволяет приложению обнаруживать изменения в состоянии входящего звука на собраниях, связанных с чатом, от имени вошедшего пользователя.
    OnlineMeetingActiveSpeaker.Read.Chat Позволяет приложению считывать участников, отправляющих аудио на собрания, связанные с чатом.
    OnlineMeetingAudioVideo.Stream.Chat Позволяет приложению передавать аудио-видео содержимое собраний, связанных с чатом.
  • Делегированные разрешения RSC для пользователей

    Название Описание
    CameraStream.Read.User Позволяет приложению считывать поток камеры пользователя.
    InAppPurchase.Allow.User Позволяет приложению отображать предложения в Marketplace и совершать покупки в приложении от имени выполнившего вход пользователя.
    OutgoingVideoStream.Write.User Позволяет приложению изменять исходящее видео пользователя.
    MicrophoneStream.Read.User Позволяет приложению считывать поток микрофона пользователя.
    MeetingParticipantReaction.Read.User Позволяет приложению считывать реакции пользователя во время участия в собрании.

extensions

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

Свойство extensions задает надстройки Outlook в манифесте приложения и упрощает распространение и приобретение в экосистеме Microsoft 365. Каждое приложение поддерживает только одно расширение.

Имя Тип Максимальный размер Обязательный Описание
requirements Object Задает набор требований клиента или узла для расширения.
runtimes Array 20 Настраивает набор сред выполнения и действий, которые могут использоваться каждой точкой расширения. Дополнительные сведения см. в разделе Среды выполнения в надстройках Office.
ribbons Array 20 Определяет точку расширения лент.
autoRunEvents Array 10 Определяет точку расширения активации на основе событий.
alternates Array 10 Указывает связь с альтернативными существующими решениями Microsoft 365. Он используется для скрытия или определения приоритета надстроек от одного издателя с перекрывающимися функциональными возможностями.
audienceClaimUrl String 2048 символов Указывает URL-адрес расширения и используется для проверки маркеров удостоверений пользователей Exchange. Дополнительные сведения см. в токене удостоверения Exchange.

Дополнительные сведения см. в разделе Манифест надстроек Office для Microsoft 365.

extensions.requirements

Объект extensions.requirements задает области, форм-факторы и наборы обязательных элементов библиотеки JavaScript для Office, которые должны поддерживаться в клиенте Office для установки надстройки. Требования также поддерживаются для дочерних свойств "ribbon", "runtime", "alternates" и "autoRunEvents", чтобы выборочно отфильтровать некоторые функции надстройки. Дополнительные сведения см . в статье Указание требований к надстройке Office в унифицированном манифесте для Microsoft 365.

Имя Тип Максимальный размер Обязательный Описание
capabilities Array 100 Определяет наборы требований.
capabilities.name String ✔️ Определяет имя набора требований.
capabilities.minVersion String Определяет минимальную версию для набора требований.
capabilities.maxVersion String Определяет максимальную версию для набора требований.
scopes Массив перечислений 1 Определяет области, в которых может выполняться надстройка, и определяет приложения Microsoft 365, в которых может выполняться расширение. Например, mail (Outlook).
Поддерживаемое значение: mail
formFactors Массив перечислений Определяет форм-факторы, поддерживающие надстройку.
Поддерживаемые значения: mobile, desktop

extensions.runtimes

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

Массив extensions.runtimes настраивает наборы сред выполнения и действий, которые может использовать каждая точка расширения.

Имя Тип Максимальный размер Обязательный Описание
id String 64 символа ✔️ Указывает идентификатор среды выполнения.
type Перечисление строк ✔️ Указывает тип среды выполнения. Поддерживаемое значение перечисления для среды выполнения на основе браузераgeneral.
code Объект ✔️ Указывает расположение кода для среды выполнения. В зависимости от runtime.typeнадстройки могут использовать файл JavaScript или HTML-страницу с внедренным script тегом, указывающим URL-адрес файла JavaScript. Оба URL-адреса необходимы в ситуациях, когда runtime.type параметр не определен.
code.page String 2048 символов ✔️ Указывает URL-адрес веб-страницы, содержащей внедренный script тег, который указывает URL-адрес файла JavaScript (который загружается в браузерную среду выполнения).
code.script String 2048 символов Указывает URL-адрес файла JavaScript для загрузки в среде выполнения, доступной только для JavaScript.
lifetime Перечисление строк Указывает время существования среды выполнения. Среды выполнения с временем short существования не сохраняют состояние при выполнении, в то время как среды выполнения с временем long существования делают. Дополнительные сведения см. в разделе Среды выполнения в надстройках Office.
Значение по умолчанию: short
actions Array 20 Указывает набор действий, поддерживаемых средой выполнения. Действие выполняет функцию JavaScript или открывает представление, например область задач.
actions.id String 64 символа ✔️ Указывает идентификатор действия, который передается в файл кода.
actions.type String ✔️ Указывает тип действия. Тип executeFunction запускает функцию JavaScript, не дожидаясь ее завершения, и openPage тип открывает страницу в заданном представлении.
actions.displayName String 64 символа Указывает отображаемое имя действия и не является меткой кнопки или пункта меню, вызывающего действие (которое настроено с tabs.groups.controls.labelпомощью ).
actions.pinnable Логический Указывает, что область задач поддерживает закрепление (область задач остается открытой, когда пользователь выбирает другой элемент).
Значение по умолчанию: false
actions.view String 64 символа Указывает представление, в котором должна быть открыта страница. Он используется только в том случае, если actions.type имеет значение openPage.
actions.multiselect Логический Указывает, может ли конечный пользователь выбрать несколько элементов, например несколько сообщений электронной почты, и применить действие ко всем из них.
Значение по умолчанию: false
actions.supportsNoItemContext Логический Позволяет надстройкам области задач активироваться без включения области чтения или выбранного сообщения.
Значение по умолчанию: false
requirements Объект Указывает области, formFactors и наборы обязательных элементов библиотеки JavaScript для Office, которые должны поддерживаться в клиенте Office, чтобы среда выполнения была включена в надстройку. Дополнительные сведения см . в статье Указание требований к надстройке Office в унифицированном манифесте для Microsoft 365.
requirements.capabilities Array Определяет наборы требований.
Параметры: name (обязательно), minVersion, maxVersion
requirements.capabilities.name String ✔️ Определяет имя набора требований.
requirements.capabilities.minVersion String Определяет минимальную версию для набора требований.
requirements.capabilities.maxVersion String Определяет максимальную версию для набора требований.
requirements.scopes Массив перечислений 1 Определяет области, в которых может выполняться надстройка, и определяет приложения Microsoft 365, в которых может выполняться расширение. Например, mail (Outlook).
Поддерживаемое значение: mail
requirements.formFactors Массив перечислений Определяет форм-факторы, поддерживающие надстройку.
Поддерживаемые значения: mobile, desktop

Сведения об использовании extensions.runtimesсм. в статье Создание команд надстроек, настройка среды выполнения для области задач и настройка среды выполнения для команды функции.

extensions.ribbons

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

Свойство extensions.ribbons позволяет добавлять команды надстройки (кнопки и пункты меню) на ленту приложения Microsoft 365. Определение ленты выбирается из массива на основе требований и первого порядка.

Имя Тип Максимальный размер Обязательный Описание
contexts Array 7 Указывает окно приложения Microsoft 365, в котором пользователю доступна настройка ленты. Каждый элемент в массиве является членом массива строк.
Поддерживаемые значения: mailRead, mailCompose, meetingDetailsOrganizer, meetingDetailsAttendee, onlineMeetingDetailsOrganizer, logEventMeetingDetailsAttendee, default
requirements Объект Указывает области, formFactors и наборы обязательных элементов библиотеки JavaScript для Office, которые должны поддерживаться в клиенте Office, чтобы появилась настройка ленты. Дополнительные сведения см . в статье Указание требований к надстройке Office в унифицированном манифесте для Microsoft 365.
requirements.capabilities Array Определяет наборы требований.
Параметры: name (обязательно), minVersion, maxVersion
requirements.capabilities.name String ✔️ Определяет имя набора требований.
requirements.capabilities.minVersion String Определяет минимальную версию для набора требований.
requirements.capabilities.maxVersion String Определяет максимальную версию для набора требований.
requirements.scopes Массив перечислений 1 Определяет области, в которых может выполняться надстройка, и определяет приложения Microsoft 365, в которых может выполняться расширение. Например, mail (Outlook).
Поддерживаемое значение: mail
requirements.formFactors Массив перечислений Определяет форм-факторы, поддерживающие надстройку.
Поддерживаемые значения: mobile, desktop
tabs Array 20 ✔️ Настраивает настраиваемые вкладки на ленте приложения Microsoft 365.
tabs.id String 64 символа Указывает идентификатор вкладки в приложении.
tabs.builtInTabId String 64 символа Указывает идентификатор встроенной вкладки ленты Office. Дополнительные сведения о возможных значениях см. в разделе Поиск идентификаторов встроенных вкладок ленты Office. Единственными дочерними свойствами объекта tab, которые можно комбинировать с этим объектом, являются groups и customMobileRibbonGroups.
tabs.label String 64 символа Указывает текст, отображаемый для вкладки. Несмотря на максимальную длину 64 символа, для правильного выравнивания вкладки на ленте рекомендуется ограничить метку до 16 символов.
tabs.position Объект Настраивает положение настраиваемой вкладки относительно других вкладок на ленте.
tabs.position.builtInTabId String 64 символа ✔️ Указывает идентификатор встроенной вкладки, рядом с которым должна располагаться настраиваемая вкладка. Дополнительные сведения см. в разделе Поиск идентификаторов элементов управления и групп элементов управления.
tabs.position.align Перечисление строк ✔️ Определяет выравнивание настраиваемой вкладки относительно указанной встроенной вкладки.
Поддерживаемые значения: after, before
tabs.groups Array 10 Определяет группы элементов управления на вкладке ленты на не мобильном устройстве. Сведения о мобильных устройствах см. в разделе tabs.customMobileRibbonGroups.
tabs.groups.id String 64 символа Указывает идентификатор группы вкладок в приложении. Он должен отличаться от любого встроенного идентификатора группы в приложении Microsoft 365 и любой другой настраиваемой группе.
tabs.groups.label String 64 символа Указывает текст, отображаемый для группы. Несмотря на максимальную длину 64 символа, для правильного выравнивания вкладки на ленте рекомендуется ограничить метку до 16 символов.
tabs.groups.icons Array 3 Указывает значки, отображаемые для группы.
tabs.groups.icons.size Номер ✔️ Задает размер значка в пикселях, перечисляемых как 16,20,24,32,40,48,64;.80
Обязательные размеры изображения: 16, 32, 80.
tabs.groups.icons.url String 2048 символов ✔️ Указывает абсолютный URL-адрес значка.
tabs.groups.controls Array Настраивает кнопки и меню в группе.
tabs.groups.controls.id String 64 символа ✔️ Указывает идентификатор элемента управления в приложении. Он должен отличаться от идентификатора встроенного элемента управления в приложении Microsoft 365 и любого другого пользовательского элемента управления.
tabs.groups.controls.items Array Настраивает элементы для элемента управления меню.
tabs.groups.controls.items.id String ✔️ Указывает идентификатор элемента меню.
tabs.groups.controls.items.type Перечисление строк ✔️ Определяет тип элемента управления элемента меню.
Поддерживаемые значения: button
tabs.groups.controls.items.label String 64 символа ✔️ Указывает текст, отображаемый для элемента меню.
tabs.groups.controls.items.icons Array Настраивает значки для элемента меню.
tabs.groups.controls.items.icons.size Номер ✔️ Задает размер значка в пикселях, перечисляемых как 16,20,24,32,40,48,64;.80
Обязательные размеры изображения: 16, 32, 80.
tabs.groups.controls.items.icons.url URL-адрес ✔️ Указывает абсолютный URL-адрес значка.
tabs.groups.controls.items.supertip ✔️ Настраивает супер-подсказку для элемента меню. Суперподставка — это функция пользовательского интерфейса, которая отображает краткое поле справки об элементе управления при наведении курсора на него. Поле может содержать несколько строк текста.
tabs.groups.controls.items.supertip.title String 64 символа ✔️ Задает текст заголовка супертемы.
tabs.groups.controls.items.supertip.description String 128 символов ✔️ Указывает описание супервыставки.
tabs.groups.controls.items.actionId String 64 символа ✔️ Указывает идентификатор действия, выполняемого при выборе пользователем элемента управления или пункта меню. Объект actionId должен соответствовать некоторому runtimes.actions.id значению свойства.
tabs.groups.controls.items.enabled Логический Указывает, включен ли изначально элемент меню.
Значение по умолчанию: true
tabs.groups.controls.items.overriddenByRibbonApi Логический Указывает, скрыт ли элемент меню в сочетаниях приложений и платформ, поддерживающих API (Office.ribbon.requestCreateControls). Этот API устанавливает пользовательские контекстные вкладки на ленте.
Значение по умолчанию: false
tabs.groups.controls.type String ✔️ Определяет тип элемента управления.
Поддерживаемые значения: button, menu
tabs.groups.controls.builtInControlId String 64 символа ✔️ Указывает идентификатор существующего элемента управления Microsoft 365. Дополнительные сведения см. в разделе Поиск идентификаторов элементов управления и групп элементов управления. Это свойство не может сочетаться с другими дочерними свойствами объекта элемента управления, так как встроенные элементы управления не настраиваются надстройкой.
tabs.groups.controls.label String 64 символа ✔️ Указывает текст, отображаемый для элемента управления . Несмотря на максимальную длину 64 символа, для правильного выравнивания вкладки на ленте рекомендуется ограничить метку до 16 символов.
tabs.groups.controls.icons Array ✔️ Определяет значки для элемента управления. Должно быть не менее трех дочерних объектов; по одному со свойствами size16, 32и 80 пикселей.
tabs.groups.controls.icons.size Номер ✔️ Задает размер значка в пикселях, перечисляемых как 16,20,24,32,40,48,64;.80
Обязательные размеры изображений: 16, 32, 80
tabs.groups.controls.icons.url URL-адрес Указывает абсолютный URL-адрес файла значка.
tabs.groups.controls.supertip Объект ✔️ Настраивает суперпетку для элемента управления . Суперподставка — это функция пользовательского интерфейса, которая отображает краткое поле справки об элементе управления при наведении курсора на него. Поле может содержать несколько строк текста.
tabs.groups.controls.supertip.title String 64 символа ✔️ Задает текст заголовка супертемы.
tabs.groups.controls.supertip.description String 128 символов ✔️ Указывает описание супервыставки.
tabs.groups.controls.actionId String 64 символа Требуется, если тип элемента управления имеет значение button. Не используйте, если тип элемента управления — menu. Указывает идентификатор действия, выполняемого при выборе пользователем элемента управления. Объект actionId должен соответствовать свойству runtime.actions.id действия в объекте runtimes .
tabs.groups.controls.enabled Логический Указывает, включен ли изначально элемент управления.
Значение по умолчанию: true
tabs.groups.controls.overriddenByRibbonApi Логический Указывает, скрыт ли элемент управления в сочетаниях приложений и платформ, поддерживающих API (Office.ribbon.requestCreateControls). Этот API устанавливает пользовательские контекстные вкладки на ленте.
Значение по умолчанию: false
tabs.groups.builtInGroupId String 64 символа Указывает идентификатор встроенной группы. Дополнительные сведения см. в разделе Поиск идентификаторов элементов управления и групп элементов управления. Это свойство нельзя комбинировать с другими дочерними свойствами объекта group, так как встроенные группы не настраиваются надстройкой.
tabs.customMobileRibbonGroups Array 10 Определяет группы элементов управления на вкладке ленты по умолчанию на мобильном устройстве. Это свойство массива может присутствовать только в объектах табуляции со свойством tabs.builtInTabId , для которых задано значение DefaultTab. Сведения о устройствах, не являющихся мобильными, см tabs.groups . выше.
tabs.customMobileRibbonGroups.id String 250 символов ✔️ Указывает идентификатор группы. Он должен отличаться от любого встроенного идентификатора группы в приложении Microsoft 365 и любой другой настраиваемой группе.
tabs.customMobileRibbonGroups.label String 32 символа ✔️ Указывает метку в группе.
tabs.customMobileRibbonGroups.controls Array 20 ✔️ Определяет элементы управления в группе. Поддерживаются только мобильные кнопки.
tabs.customMobileRibbonGroups.controls.id String 250 символов ✔️ Указывает идентификатор элемента управления, например msgReadFunctionButton.
tabs.customMobileRibbonGroups.controls.type Перечисление строк ✔️ Указывает тип элемента управления.
Поддерживаемое значение: MobileButton
tabs.customMobileRibbonGroups.controls.label String 32 символа ✔️ Указывает метку в элементе управления .
tabs.customMobileRibbonGroups.controls.actionId String 64 символа ✔️ Указывает идентификатор действия, выполняемого при выборе пользователем элемента управления. Объект actionId должен соответствовать свойству runtime.actions.id действия в объекте runtimes .
tabs.customMobileRibbonGroups.controls.icons Array 9 ✔️ Указывает значки, отображаемые в элементе управления в зависимости от размеров и точек на дюйм экрана мобильного устройства. Должно быть ровно 9 значков.
tabs.customMobileRibbonGroups.controls.icons.size Перечисление чисел ✔️ Размер значка в пикселях. Требуемые размеры: 25, 32 и 48. Для каждого возможного значения свойства значка scale должен быть только один размер.
tabs.customMobileRibbonGroups.controls.icons.url String 2048 символов ✔️ Полный абсолютный URL-адрес файла изображения значка.
tabs.customMobileRibbonGroups.controls.icons.scale Перечисление чисел ✔️ Указывает свойство UIScreen.scale для устройств iOS. Возможные значения: 1, 2 и 3. Для каждого возможного значения свойства значка должно быть только одно из значений size .

Сведения об использовании extensions.ribbonsсм. в статье Создание команд надстроек, настройка пользовательского интерфейса для команды области задач и настройка пользовательского интерфейса для команды функции.

extensions.autoRunEvents

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

Свойство extensions.autoRunEvents определяет точки расширения активации на основе событий.

Имя Тип Максимальный размер Обязательный Описание
events Array 20 ✔️ Настраивает событие, которое приводит к автоматическому запуску действий в надстройке Outlook. Например, см . статью Использование смарт-оповещений OnMessageSend и событий и OnAppointmentSend в надстройках Outlook.
events.type String 64 символа ✔️ Указывает тип события. Поддерживаемые типы см. в разделе Поддерживаемые события.
events.actionId String 64 символа ✔️ Определяет действие, выполняемое при возникновении события. Объект должен соответствовать параметру actionIdruntime.actions.id.
events.options Объект Настраивает реакцию Outlook на событие.
events.options.sendMode String ✔️ Указывает действия, выполняемые во время действия отправки почты.
Поддерживаемые значения: promptUser, softBlock, block. Дополнительные сведения см. в разделе Доступные параметры режима отправки.
requirements Объект Указывает области, formFactors и наборы обязательных элементов библиотеки JavaScript для Office, которые должны поддерживаться в клиенте Office для выполнения кода обработки событий. Дополнительные сведения см . в статье Указание требований к надстройке Office в унифицированном манифесте для Microsoft 365.
requirements.capabilities Array Определяет наборы требований.
Параметры: name (обязательно), minVersion, maxVersion
requirements.capabilities.name String ✔️ Определяет имя набора требований.
requirements.capabilities.minVersion String Определяет минимальную версию для набора требований.
requirements.capabilities.maxVersion String Определяет максимальную версию для набора требований.
requirements.scopes Массив перечислений 1 Определяет области, в которых может выполняться надстройка, и определяет приложения Microsoft 365, в которых может выполняться расширение. Например, mail (Outlook).
Поддерживаемое значение: mail
requirements.formFactors Массив перечислений Определяет форм-факторы, поддерживающие надстройку.
Поддерживаемые значения: mobile, desktop

extensions.alternates

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

Свойство extensions.alternates используется для скрытия или определения приоритетов определенных надстроек на рынке, когда вы опубликовали несколько надстроек с перекрывающимися функциями.

Имя Тип Максимальный размер Обязательный Описание
prefer Object Указывает обратную совместимость с эквивалентной надстройкой COM, надстройкой XLL или и тем, и другим.
prefer.comAddin Объект Указывает надстройку COM, которую необходимо использовать вместо веб-надстройки Microsoft 365 для Windows.
prefer.comAddin.progId String 64 символа ✔️ Определяет тип приложения, в котором может выполняться расширение.
hide Объект Настраивает способ скрытия другой надстройки, опубликованной при установке надстройки, чтобы пользователи не видели обе надстройки в пользовательском интерфейсе Microsoft 365. Например, используйте это свойство, если вы ранее опубликовали надстройку, которая использует старый манифест приложения XML, и заменяете его версией, используюющей новый манифест приложения JSON.
hide.storeOfficeAddin Объект Указывает надстройку Microsoft 365, доступную в Microsoft AppSource.
hide.storeOfficeAddin.officeAddinId String 64 символа ✔️ Указывает идентификатор надстройки на рынке для скрытия. Идентификатор GUID берется из свойства манифеста id приложения, если надстройка на рынке использует манифест приложения JSON. Guid берется из элемента , <Id> если надстройка на рынке использует манифест приложения XML.
hide.storeOfficeAddin.assetId String 64 символа ✔️ Указывает идентификатор ресурса AppSource надстройки на рынке для скрытия.
hide.customOfficeAddin Объект Настраивает способ скрытия надстройки на рынке, которая не распространяется через AppSource.
hide.customOfficeAddin.officeAddinId String 64 символа ✔️ Указывает идентификатор надстройки на рынке для скрытия. Идентификатор GUID берется из свойства манифеста id приложения, если надстройка на рынке использует манифест приложения JSON. Guid берется из элемента , <Id> если надстройка на рынке использует манифест приложения XML.
requirements Объект Указывает области, formFactors и наборы обязательных элементов библиотеки JavaScript для Office, которые должны поддерживаться в клиенте Office, чтобы свойства hide, prefer или alternateIcons вступают в силу. Дополнительные сведения см . в статье Указание требований к надстройке Office в унифицированном манифесте для Microsoft 365.
requirements.capabilities Array Определяет наборы требований.
Параметры: name (обязательно), minVersion, maxVersion
requirements.capabilities.name String ✔️ Определяет имя набора требований.
requirements.capabilities.minVersion String Определяет минимальную версию для набора требований.
requirements.capabilities.maxVersion String Определяет максимальную версию для набора требований.
requirements.scopes Массив перечислений 1 Определяет области, в которых может выполняться надстройка, и определяет приложения Microsoft 365, в которых может выполняться расширение. Например, mail (Outlook).
Поддерживаемое значение: mail
requirements.formFactors Массив перечислений Определяет форм-факторы, поддерживающие надстройку.
Поддерживаемые значения: mobile, desktop
alternateIcons Объект Указывает main значки, которые используются для представления надстройки в более ранних версиях Office. Это свойство является обязательным , если надстройка Office должна быть установлена в Office на Mac, бессрочных лицензиях Office и версиях Office 365 для Windows до версии 2304 (сборка 16320.00000).
alternateIcons.icon Объект ✔️ Задает свойства файла изображения, используемого для представления надстройки.
alternateIcons.icon.size Перечисление чисел ✔️ Задает размер значка в пикселях, перечисляемых как 16,20,24,32,40,48,64;.80
Обязательные размеры изображения: 16, 32, 80.
alternateIcons.icon.url String 2048 символов ✔️ Указывает полный абсолютный URL-адрес файла изображения, который используется для представления надстройки. Изображение значка должно иметь размер 64 x 64 пикселя и использовать один из следующих форматов файлов: GIF, JPG, PNG, EXIF, BMP, TIFF.
alternateIcons.highResolutionIcon Объект ✔️ Указывает свойства файла изображения, используемого для представления надстройки на экранах с высоким разрешением.
alternateIcons.highResolutionIcon.size Перечисление чисел ✔️ Задает размер значка в пикселях, перечисляемых как 16,20,24,32,40,48,64;.80
Обязательные размеры изображения: 16, 32, 80.
alternateIcons.highResolutionIcon.url String 2048 символов ✔️ Указывает полный абсолютный URL-адрес файла изображения, который используется для представления надстройки на экранах с высоким разрешением. Изображение значка должно иметь размер 128 x 128 пикселей и использовать один из следующих форматов файлов: GIF, JPG, PNG, EXIF, BMP, TIFF.

панели мониторингаCards

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

Определяет список карточек, которые можно закрепить на панели мониторинга, например Microsoft Viva Connections, для предоставления сводного представления сведений о приложении. Дополнительные сведения о создании карточек для панели мониторинга Viva Connections см. в статье Обзор расширений адаптивных карточек на основе бота.

Этот элемент представляет собой массив dashboardCard элементов типа object.

dashboardCards.dashboardCard

Определяет одну карта панели мониторинга и ее свойства.

Имя Тип Максимальный размер Обязательный Описание
id String ✔️ Уникальный идентификатор для этой панели мониторинга карта. Идентификатор должен быть идентификатором GUID.
displayName String 255 символов ✔️ Отображаемое имя карта.
description String 255 символов ✔️ Описание карта.
pickerGroupId String ✔️ Идентификатор группы в средстве выбора карта. Идентификатор должен быть идентификатором GUID.
icon Объект Указывает значок для карта.
contentSource Объект ✔️ Указывает источник содержимого карта.
defaultSize String ✔️ Размер отрисовки для карта панели мониторинга. Параметры: medium или large.

dashboardCards.dashboardCard.icon

Определяет свойства значка для заданного карта панели мониторинга.

Имя Тип Максимальный размер Обязательный Описание
iconUrl String 2048 символов Расположение значка для карта, который будет отображаться на панели элементов и карта панели.
officeUIFabricIconName String 255 символов Понятное имя значка пользовательского интерфейса Office UI Fabric или Fluent для карта. Это значение используется, если iconUrl оно не указано.

dashboardCards.dashboardCard.contentSource

Определяет источник содержимого заданной карта панели мониторинга.

Имя Тип Максимальный размер Обязательный Описание
sourceType String Представляет источник содержимого карта. Параметр: bot.
botConfiguration Объект Конфигурация для источника бота. Требуется, sourceType если для задано значение bot.

dashboardCards.dashboardCard.contentSource.botConfiguration

Имя Тип Максимальный размер Обязательный Описание
botId String Уникальный идентификатор приложения Майкрософт для бота, зарегистрированный в Bot Framework. Идентификатор должен быть идентификатором GUID.

Создание файла манифеста приложения

Если у приложения нет файла манифеста приложения, его необходимо создать.

Чтобы создать файл манифеста приложения, выполните следующие действия:

  1. Используйте схему манифеста приложения для создания файла .json.
  2. Сохраните его в корневой папке проекта как manifest.json.

Ниже приведен пример схемы манифеста приложения для приложения-вкладки с включенным единым входом:

Примечание.

Приведенный здесь пример содержимого манифеста приложения предназначен только для приложения вкладки. В нем используются примеры значений для URI поддомена. Дополнительные сведения см. в разделе Пример схемы манифеста приложения.

{ 
"$schema": "https://developer.microsoft.com/json-schemas/teams/v1.11/MicrosoftTeams.schema.json", 
"manifestVersion": "1.12", 
"version": "1.0.0", 
"id": "{new GUID for this Teams app - not the Microsoft Entra App ID}", 
"developer": { 
"name": "Microsoft", 
"websiteUrl": "https://www.microsoft.com", 
"privacyUrl": "https://www.microsoft.com/privacy", 
"termsOfUseUrl": "https://www.microsoft.com/termsofuse" 
}, 

"name": { 
  "short": "Teams Auth SSO", 
  "full": "Teams Auth SSO" 
}, 


"description": { 
  "short": "Teams Auth SSO app", 
  "full": "The Teams Auth SSO app" 
}, 

"icons": { 
  "outline": "outline.png", 
  "color": "color.png" 
}, 

"accentColor": "#60A18E", 
"staticTabs": [ 
  { 
   "entityId": "auth", 
   "name": "Auth", 
   "contentUrl": "https://subdomain.example.com/Home/Index", 
   "scopes": [ "personal" ] 
  } 
], 

"configurableTabs": [ 
  { 
   "configurationUrl": "https://subdomain.example.com/Home/Configure", 
   "canUpdateConfiguration": true, 
   "scopes": [ 
   "team" 
    ] 
  } 
], 
"permissions": [ "identity", "messageTeamMembers" ], 
"validDomains": [ 
 "{subdomain or ngrok url}" 
], 
"webApplicationInfo": { 
  "id": "{Microsoft Entra AppId}", 
  "resource": "api://subdomain.example.com/{Microsoft Entra AppId}" 
}
} 

См. также