公共开发人员预览版应用清单架构

有关如何启用开发人员预览的信息,请参阅 Microsoft Teams 的公共开发人员预览

注意

如果你未使用开发人员预览功能(包括在 Outlook 和 Microsoft 365 应用中运行 Teams 个人选项卡和邮件扩展),请改为使用应用 清单 (以前称为 Teams 应用清单) 正式发布 (GA) 功能。

应用清单介绍了应用如何集成到 Microsoft Teams 平台中。 应用清单必须符合托管在 https://developer.microsoft.com/json-schemas/teams/vDevPreview/MicrosoftTeams.schema.json 的架构。

示例应用清单

{
    "$schema": "https://developer.microsoft.com/json-schemas/teams/vDevPreview/MicrosoftTeams.schema.json",
    "manifestVersion": "devPreview",
    "version": "1.0.0",
    "id": "%MICROSOFT-APP-ID%",
    "devicePermissions": [
        "geolocation",
        "media"
    ],
    "developer": {
        "name": "Publisher Name",
        "websiteUrl": "https://website.com/",
        "privacyUrl": "https://website.com/privacy",
        "termsOfUseUrl": "https://website.com/app-tos",
        "mpnId": "1234567890"
    },
    "localizationInfo": {
        "defaultLanguageTag": "es-es",
        "additionalLanguages": [
            {
                "languageTag": "en-us",
                "file": "en-us.json"
            }
        ]
    },
    "name": {
        "short": "Name of your app (<=30 chars)",
        "full": "Full name of app, if longer than 30 characters"
    },
    "description": {
        "short": "Short description of your app",
        "full": "Full description of your app"
    },
    "icons": {
        "outline": "%FILENAME-32x32px%",
        "color": "%FILENAME-192x192px"
    },
    "accentColor": "%HEX-COLOR%",
    "configurableTabs": [
        {
            "configurationUrl": "https://contoso.com/teamstab/configure",
            "canUpdateConfiguration": true,
            "scopes": [
                "team",
                "groupchat"
            ],
            "context": []
        }
    ],
    "staticTabs": [
        {
            "entityId": "idForPage",
            "name": "Display name of tab",
            "contentUrl": "https://contoso.com/content?host=msteams",
            "contentBotId": "Specifies to the app that tab is an Adaptive Card Tab. You can either provide the contentBotId or contentUrl.",
            "websiteUrl": "https://contoso.com/content",
            "scopes": [
                "personal"
            ]
        }
    ],
    "bots": [
        {
            "botId": "%MICROSOFT-APP-ID-REGISTERED-WITH-BOT-FRAMEWORK%",
            "needsChannelSelector": false,
            "isNotificationOnly": false,
            "scopes": [
                "team",
                "personal",
                "groupchat"
            ],
            "supportsFiles": true,
            "commandLists": [
                {
                    "scopes": [
                        "team",
                        "groupchat"
                    ],
                    "commands": [
                        {
                            "title": "Command 1",
                            "description": "Description of Command 1"
                        },
                        {
                            "title": "Command N",
                            "description": "Description of Command N"
                        }
                    ]
                },
                {
                    "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%",
            "configurationUrl": "https://contoso.com/teamsconnector/configure",
            "scopes": [
                "team"
            ]
        }
    ],
    "composeExtensions": [
        {
            "botId": "%MICROSOFT-APP-ID-REGISTERED-WITH-BOT-FRAMEWORK%",
            "canUpdateConfiguration": true,
            "commands": [
                {
                    "id": "exampleCmd1",
                    "title": "Example Command",
                    "description": "Command Description; e.g., Search on the web",
                    "initialRun": true,
                    "type": "search",
                    "context": [
                        "compose",
                        "commandBox"
                    ],
                    "parameters": [
                        {
                            "name": "keyword",
                            "title": "Search keywords",
                            "description": "Enter the keywords to search for"
                        }
                    ]
                },
                {
                    "id": "exampleCmd2",
                    "title": "Example Command 2",
                    "description": "Command Description; e.g., Search for a customer",
                    "initialRun": true,
                    "type": "action",
                    "fetchTask": true,
                    "context": [
                        "message"
                    ],
                    "parameters": [
                        {
                            "name": "custinfo",
                            "title": "Customer name",
                            "description": "Enter a customer name",
                            "inputType": "text"
                        }
                    ]
                },
                {
                    "id": "exampleMessageHandler",
                    "title": "Message Handler",
                    "description": "Domains that will create a preview when pasted into the compose box",
                    "messageHandlers": [
                        {
                            "type": "link",
                            "value": {
                                "domains": [
                                    "mysite.someplace.com",
                                    "othersite.someplace.com"
                                ]
                            }
                        }
                    ]
                }
            ]
        }
    ],
    "permissions": [
        "identity",
        "messageTeamMembers"
    ],
    "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"
                }
            ]
        }
    },
    "configurableProperties": [
        "name",
        "shortDescription",
        "longDescription",
        "smallImageUrl",
        "largeImageUrl",
        "accentColor",
        "developerUrl",
        "privacyUrl",
        "termsOfUseUrl"
    ],
    "defaultInstallScope": "meetings",
    "defaultGroupCapability": {
        "meetings": "tab",
        "team": "bot",
        "groupchat": "bot"
    },
    "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

可选,但建议 - 字符串

引用 https:// 应用清单的 JSON 架构的 URL。

manifestVersion

必需 - 字符串

此清单使用的应用清单架构的版本。

version

必需 - 字符串

特定应用的版本。 如果更新应用清单中的某些内容,则版本也必须递增。 这样,当安装新的应用清单时,它会覆盖现有应用清单,并且用户将获得新功能。 如果此应用已提交到 Microsoft Teams 应用商店,则必须重新提交并重新验证新的应用清单。 然后,此应用的用户将在批准后几个小时内自动获取更新后的新应用清单。

如果应用请求的权限发生更改,系统会提示用户升级并重新同意应用。

此版本字符串必须遵循semver标准 (MAJOR.MINOR.PATCH)。

注意

如果应用包含 Office 加载项,则版本字符串的每个段限制为最多 5 位。 不支持 semver 标准的预发布和元数据版本字符串扩展。

id

必需 - Microsoft 应用 ID

此应用的唯一 Microsoft 生成的标识符。 ID 的格式为 GUID。 如果已通过 Microsoft Bot Framework 注册了机器人,或者选项卡的 Web 应用已使用 Microsoft 登录,则可能已有 ID,并且必须在此处输入它。 否则,必须在 Microsoft 应用程序注册门户 (“我的应用程序 ”) 生成新 ID,在此处输入该 ID,然后在 添加机器人时重复使用它。

developer

必需 - 对象

指定有关公司的信息。 对于提交到 Microsoft AppSource (以前是 Office 应用商店) 的应用,这些值必须与 AppSource 条目中的信息匹配。

名称 最大大小 必需 Description
name 32 个字符 ✔️ 开发人员的显示名称。
websiteUrl 2048 个字符 ✔️ 开发人员网站的 https:// URL。 此链接必须将用户转到公司或产品特定的登陆页面。
privacyUrl 2048 个字符 ✔️ 开发人员隐私策略的 https:// URL。
termsOfUseUrl 2048 个字符 ✔️ 开发人员使用条款的 https:// URL。
mpnId 10 个字符 可选 标识生成应用的合作伙伴组织的Microsoft 合作伙伴网络 ID。

localizationInfo

可选 - 对象

允许指定默认语言,以及指向其他语言文件的指针。 参阅 本地化

名称 最大大小 必需 说明
defaultLanguageTag 4 个字符 ✔️ 此顶级应用清单文件中字符串的语言标记。

localizationInfo.additionalLanguages

指定其他语言翻译的对象数组。

名称 最大大小 必需 说明
languageTag 4 个字符 ✔️ 所提供文件中字符串的语言标记。
file 2048 个字符 ✔️ 包含已翻译字符串的.json文件的相对文件路径。

name

必需 - 对象

应用体验的名称,在 Teams 体验中向用户显示。 对于提交到 AppSource 的应用,这些值必须与 AppSource 条目中的信息匹配。 shortfull的值必须不同。

名称 类型 最大大小 必需 说明
short String 30 个字符 ✔️ 应用的短显示名称。
full String 100 个字符 ✔️ 应用的全名。 如果完整的应用名称超过 30 个字符,则使用它。

说明

必需 - 对象

向用户描述应用。 对于提交到 AppSource 的应用,这些值必须与 AppSource 条目中的信息匹配。

确保描述可以准确描述你的体验,并提供信息来帮助潜在客户了解你的体验。 如果需要使用外部帐户,则必须在完整说明中进行说明。 shortfull的值必须不同。 简短说明不能在长说明中重复,也不能包含任何其他应用名称。

名称 最大大小 必需 Description
short 80 个字符 ✔️ 应用体验的简短说明,在空间受限时使用。
full 4000 个字符 ✔️ 应用的完整说明。

图标

必需 - 对象

Teams 应用中使用的图标。 图标文件必须作为上传包的一部分包含在内。

名称 最大大小 必需 说明
outline 2048 个字符 ✔️ 透明 32x32 PNG 大纲图标的相对文件路径。 边框颜色必须为白色。
color 2048 个字符 ✔️ 完整颜色 192x192 PNG 图标的相对文件路径。

accentColor

必需 - 字符串

用于 和 作为大纲图标的背景的颜色。

该值必须是以"#"开头的有效 HTML 颜色代码,例如 #4464ee

configurableTabs

可选 - 数组

当你的应用体验具有团队频道选项卡体验时使用,该体验需要在添加之前进行额外配置。 可配置选项卡仅在团队范围内受支持,并且目前每个应用仅支持一个选项卡。

对象是一个数组,其中包含类型的所有元素 object。 只有提供可配置频道选项卡解决方案的解决方案才需要此块。

名称 类型 最大大小 必需 说明
configurationUrl 字符串 2048 个字符 ✔️ 配置选项卡时要使用的 https:// URL。
canUpdateConfiguration Boolean 一个值,该值指示创建后用户是否可以更新选项卡配置的实例。
默认值: true
scopes 枚举数组 2 ✔️ 目前,可配置选项卡仅支持 teamgroupChat 范围。
context 枚举数组 8 支持选项卡contextItem 范围的集合。
默认值:channelTab、、privateChatTabmeetingChatTabmeetingDetailsTabmeetingSidePanelmeetingStage、 。 personalTab
sharePointPreviewImage String 2048 个字符 用于 SharePoint 的选项卡预览图像的相对文件路径。 大小 1024x768。
supportedSharePointHosts 枚举数组 2 定义如何在 SharePoint 中提供选项卡。 选项为 sharePointFullPagesharePointWebPart
meetingSurfaces 枚举数组 2 选项卡所属的范围 meetingSurfaceItem 集。
默认值: sidePanelstage
supportedPlatform 枚举数组 3 选项卡所属的范围 supportedPlatform 集。
默认值: desktopmobileteamsMeetingDevices

staticTabs

可选 - 数组

定义默认情况下可以"固定"的一组选项卡,而无需用户手动添加它们。 在 personal 范围内声明的静态选项卡始终固定到应用的个人体验。 当前不支持在 team 作用域中声明的静态选项卡。

通过在 staticTabs 块指定 contentBotId 而不是 contentUrl 来呈现具有自适应卡片的选项卡。

对象是一个所有元素均为类型 object 的数组(最多 16 个元素)。 只有提供静态选项卡解决方案的解决方案才需要此块。

名称 类型 最大大小 必需 说明
entityId 字符串 64 个字符 ✔️ 选项卡显示的实体的唯一标识符。
name 字符串 128 个字符 ✔️ 选项卡的显示名称。
contentUrl String 2048 个字符 ✔️ 指向要在 Teams 画布中显示的实体 UI 的 https:// URL。
contentBotId String 在 Bot Framework 门户中为机器人指定的 Microsoft Teams 应用 ID。
websiteUrl String 2048 个字符 用户选择在浏览器中查看时要指向的 http:// URL。
scopes 枚举数组 3 ✔️ 静态选项卡支持 personalteamgroupChat 范围,这意味着它可以作为个人、群组聊天和频道会议体验的一部分进行预配。
searchUrl String 2048 个字符 用于定向用户搜索查询的 https:// URL。
context 枚举数组 8 选项卡所属的范围 contextItem 集。
默认值:personalTab、、channelTabprivateChatTabmeetingChatTabmeetingDetailsTabmeetingSidePanel、、meetingStageteamLevelApp
supportedPlatform 枚举数组 3 选项卡所属的范围 supportedPlatform 集。
默认值: desktopmobileteamsMeetingDevices

机器人

可选 - 数组

定义机器人解决方案以及可选信息(如默认命令属性)。

对象是一个数组, (最多只有 1 个元素-目前,每个应用只允许一个机器人) 所有元素的类型 object。 只有提供机器人体验的解决方案才需要此块。

名称 类型 最大大小 必需 说明
botId String ✔️ 使用 Bot Framework 注册的自动程序的唯一 Microsoft 应用 ID。 ID 可以与整体应用 ID相同。
needsChannelSelector 布尔值 描述机器人是否利用用户提示将机器人添加到特定通道。
默认值: false
isNotificationOnly 布尔值 指示自动程序是否为单向、仅通知的自动程序,而不是对话自动程序。
默认值: false
supportsFiles 布尔值 指示自动程序是否支持在个人聊天中上传/下载文件。
默认值: false
scopes 枚举数组 3 ✔️ 指定自动程序是在 team 内的频道上下文中提供体验、在群组聊天 (groupChat) 中提供体验,还是仅在单个用户 (personal) 范围内提供体验。 这些选项是非排他性的。
supportsCalling Boolean 一个值,该值指示机器人支持音频调用的位置。 IMPORTANT: 此属性当前为实验性属性。 实验属性可能不完整,并且可能会在完全可用之前进行更改。 该属性仅用于测试和探索目的,不得在生产应用程序中使用。
默认值: false
supportsVideo Boolean 一个值,该值指示机器人支持视频通话的位置。 IMPORTANT: 此属性当前为实验性属性。 实验属性可能不完整,并且可能会在完全可用之前进行更改。 该属性仅用于测试和探索目的,不得在生产应用程序中使用。
默认值: false
requiresSecurityEnabledGroup 布尔值 一个值,该值指示团队的 Office 组是否需要启用安全性。
默认值: false

bots.configuration

名称 类型 最大大小 必需 说明
team.fetchTask Boolean ✔️ 一个布尔值,指示它是否应动态提取对话 (TeamsJS v1.x 中称为任务模块) 。
默认值: false
team.taskInfo.title 字符串 64 个字符 ✔️ 初始对话框标题。
team.taskInfo.width 字符串 16 对话框宽度是数字(以像素为单位)或默认布局,例如 largemediumsmall
team.taskInfo.height String 16 对话框高度是数字(以像素为单位)或默认布局,例如 largemediumsmall
team.taskInfo.url String 2048 个字符 初始 Web 视图 URL。
groupChat.fetchTask 布尔值 ✔️ 一个布尔值,指示它是否应动态提取对话。
默认值: false
groupChat.taskInfo Object 提取任务设置为 false 时要启动的对话。
默认值: false
groupChat.taskInfo.title 字符串 64 个字符 ✔️ 初始对话框标题。
groupChat.taskInfo.width 字符串 16 对话框宽度是数字(以像素为单位)或默认布局,例如 largemediumsmall
groupChat.taskInfo.height String 16 对话框高度是数字(以像素为单位)或默认布局,例如 largemediumsmall
groupChat.taskInfo.url String 2048 个字符 初始 Web 视图 URL。

bots.commandLists

机器人可以向用户推荐的命令的可选列表。 对象是一个数组(最多 2 个元素),其所有元素类型均为 object;必须为机器人支持的每个范围定义一个单独的命令列表。 有关详细信息,请参阅 机器人菜单

名称 类型 最大大小 必需 说明
items.scopes 枚举数组 3 ✔️ 指定命令列表有效的作用域。 选项包括 teampersonalgroupChat
items.commands 对象的数组。 10 ✔️ 自动程序支持的命令数组:
title:自动程序命令名称(字符串,32)
description:命令语法及其参数的简单说明或示例(字符串,128)。

连接器

可选 - 数组

connectors为应用定义Microsoft 365 组连接器。

对象是一个数组(最多 1 个元素),其所有元素类型均为 object。 只有提供连接器的解决方案才需要此块。 每个应用仅支持一个连接器。

名称 类型 最大大小 必需 说明
configurationUrl 字符串 2048 个字符 ✔️ 使用内联配置体验配置连接器时要使用的 https:// URL。
connectorId 字符串 64 个字符 ✔️ 连接器的唯一标识符,与Connectors 开发人员仪表板中的 ID 匹配。
scopes 枚举数组 1 ✔️ 指定连接器是在 team的频道上下文中提供体验,还是仅限单个用户的体验(personal)。 目前,仅支持 team 范围。

composeExtensions

可选 - 数组

定义应用的消息扩展。

注意

功能的名称在 2017 年 11 月从“撰写扩展”更改为“消息扩展”,但应用清单名称保持不变,以便现有扩展继续运行。

对象是一个数组(最多 1 个元素),其所有元素类型均为 object。 只有提供消息扩展的解决方案才需要此块。

名称 类型 最大大小 必需 说明
botId String 支持消息扩展的机器人的唯一 Microsoft 应用 ID,已向机器人框架注册。 ID 可以与整体应用 ID相同。
composeExtensionType String 撰写扩展的类型。 枚举值为 botBasedapiBased
authorization Object 2 基于 API 的消息扩展的授权相关信息
authorization.authType String 可能授权类型的枚举。 支持的值为 noneapiSecretServiceAuthmicrosoftEntra
authorization.microsoftEntraConfiguration Object 对象捕获执行 microsoftEntra 身份验证流所需的详细信息。 仅当身份验证类型为 microsoftEntra时适用。
authorization.microsoftEntraConfiguration.supportsSingleSignOn boolean 一个值,该值指示是否为应用配置了单一登录。
authorization.apiSecretServiceAuthConfiguration Object 对象捕获执行服务身份验证所需的详细信息。仅当身份验证类型为 apiSecretServiceAuth时适用。
authorization.apiSecretServiceAuthConfiguration.apiSecretRegistrationId String 128 个字符 开发人员通过开发人员门户提交 API 密钥时返回的注册 ID。
apiSpecificationFile String 2048 个字符 清单包中 api 规范文件的相对文件路径。
canUpdateConfiguration 布尔值 一个值,该值指示用户是否可以更新消息扩展的配置。
默认值: true
commands 对象数组 10 消息扩展支持的命令数组。
messageHandlers 对象的数组。 5 允许在满足特定条件时调用应用的处理程序列表。 域还必须在 中 validDomains列出。
messageHandlers.type String 消息处理程序的类型。 必须是 "link"
messageHandlers.value.domains Array of Strings 2048 个字符 链接消息处理程序可以注册的域数组。
messageHandlers.supportsAnonymizedPayloads 布尔值 一个布尔值,该值指示应用的链接消息处理程序是否支持匿名调用流。
默认值: false
若要为链接展开启用零安装,需要将 值设置为 true
注意: 属性 supportAnonymousAccesssupportsAnonymizedPayloads取代。
type 撰写扩展的类型。 支持的值为 apiBasedbotBased

composeExtensions.commands

消息扩展必须声明一个或多个命令。 每个命令在 Teams 中显示为来自基于 UI 的入口点的潜在交互。 最多有 10 个命令。

每个命令项都是具有以下结构的对象:

名称 类型 最大大小 必需 说明
id 字符串 64 个字符 ✔️ 命令的 ID。
type 字符串 64 个字符 命令的类型。 queryaction之一。 默认值:query
samplePrompts 数组 5 Copilot 用于向用户显示插件支持的提示的属性。
samplePrompts.text string 128 个字符 ✔️ 示例提示的内容。
apiResponseRenderingTemplateFile String 2048 个字符 API 响应呈现模板 文件的相对文件路径,用于格式化从开发人员 API 到自适应卡片响应的 JSON 响应。
context Array of Strings 3 个字符 定义可以从何处调用消息扩展插件。 composecommandBoxmessage 的任何组合。
默认值: compose, commandBox
title 字符串 32 个字符 ✔️ 用户友好的命令名称。
description 字符串 128 个字符 向用户显示以指示此命令用途的说明。
semanticDescription String 5000 个字符 由 Copilot 使用大型语言模型 (LLM) 使用的命令的语义说明。
initialRun 布尔值 一个布尔值,该值指示命令最初是否在没有参数的情况下运行。
默认值: false
fetchTask 布尔值 一个布尔值,指示它是否必须动态提取对话。
taskInfo Object 指定要在使用消息扩展命令时预加载的对话。
taskInfo.title 字符串 64 个字符 初始对话框标题。
taskInfo.width 字符串 对话框宽度 - 以像素为单位的数字或默认布局,例如 largemediumsmall
taskInfo.height String 对话框高度 - 以像素为单位的数字或默认布局,例如 largemediumsmall
taskInfo.url String 2048 个字符 初始 Web 视图 URL。
parameters 对象数组 5 命令采用的参数列表。 最小值:1;最大值:5。
parameter.name 字符串 64 个字符 ✔️ 在客户端中显示的参数的名称。 这包含在用户请求中。
对于基于 Api 的消息扩展,名称必须映射到 parameters.name OpenAPI 说明中的 。 如果要引用请求正文架构中的属性,则该名称必须映射到 properties.name 或 查询参数。
parameter.title 字符串 32 个字符 ✔️ 参数的用户友好标题。
parameter.description String 128 个字符 描述此参数用途的用户友好字符串。
parameter.semanticDescription String 2000 个字符 大型语言模型使用的参数的语义说明。
parameter.inputType String 定义 在 fetchTask: false对话框上显示的控件的类型。 texttextareanumberdatetimetogglechoiceset 其中之一。
parameter.value String 512 个字符 参数的初始值。
parameter.choices 对象的数组。 10 choiceset 的选择选项。 仅当 parameter.inputTypechoiceset 时使用。
parameter.choices.title String 128 个字符 ✔️ 选择的标题。
parameter.choices.value String 512 个字符 ✔️ 选项的值。

scopeConstraints

对应用施加的范围约束,用于指定可以在哪些线程中安装应用。 如果未指定约束,则可以将应用安装到特定范围内的所有线程。

可选 - 对象

名称 类型 最大大小 必需 说明
teams Array 128 应用限制到的团队线程 ID 列表。
teams.id 字符串 64 个字符 ✔️ 团队的线程 ID。
groupChats Array 128 应用被限制到的聊天线程 ID 列表。
groupChats.id 字符串 64 个字符 ✔️ 聊天的线程 ID。

permissions

可选 – 字符串数组

string数组,指定应用请求的权限,使最终用户知道扩展的执行方式。 以下选项是非排他性的:

  • identity 需要用户标识信息。
  • messageTeamMembers 需要向团队成员发送直接消息的权限。

更新应用时更改这些权限会导致用户在首次运行更新的应用时重复同意过程。

devicePermissions

可选 - 字符串数组

指定应用可能请求访问的用户设备上的本机功能。 选项有:

  • geolocation
  • media
  • notifications
  • midi
  • openExternal

validDomains

可选,除非备注为 必需

应用需要从中加载任何内容的有效域的列表。 域列表可以包含通配符,例如 *.example.com。 有效域与域的一个段完全匹配;如果需要匹配 a.b.example.com则使用 *.*.example.com。 如果你的选项卡配置或内容 UI 需要转到除用于选项卡配置的域之外的任何其他域,则必须在此处指定该域。

注意

使用清单中的属性配置的 extensions Office 加载项忽略包含通配符的域。 如果应用包含 Office 外接程序,请指定外接程序将访问的域的完整域名。

但是, 不需要 包括要在应用中支持的标识提供者的域。 例如,若要使用 Google ID 进行身份验证,必须重定向到 accounts.google.com,但不得在 中包含 validDomains[]accounts.google.com。

重要

不要直接或通过通配符添加超出控制范围的域。 例如, yourapp.onmicrosoft.com 有效,但 *.onmicrosoft.com 无效。

对象是一个数组,其中包含类型的所有元素 string。 对象的最大项为 16,最大长度为 2048 个字符。

webApplicationInfo

可选 - 对象

指定Microsoft Entra应用 ID 和 Graph 信息,以帮助用户无缝登录到Microsoft Entra应用。

名称 类型 最大大小 必需 说明
id String ✔️ Microsoft Entra应用的应用程序 ID。 此 ID 必须是 GUID。
resource String 2048 个字符 用于获取 SSO 身份验证令牌的应用的资源 URL。

graphConnector

可选 - 对象

指定应用的 Graph 连接器配置。 如果存在,则还必须指定 webApplicationInfo.id

名称 类型 最大大小 必需 说明
notificationUrl string 2048 个字符 ✔️ 必须在其中发送应用程序的 Graph 连接器通知的 https:// URL。

showLoadingIndicator

可选 - 布尔值

指示在加载应用或选项卡时是否显示加载指示器。
默认值: false

注意

  • 如果在 showLoadingIndicator 应用清单中选择“true”,若要正确加载页面,请按 显示本机加载指示器 文档中所述修改选项卡和对话框的内容页。
  • 如果不修改选项卡的内容页,则选项卡应用不会加载并显示错误 There was a problem reaching this app

isFullScreen

可选 - 布尔值

指示使用或不使用选项卡标题栏呈现个人应用的位置。
默认值: false

注意

isFullScreen 仅适用于发布到组织的应用。

activities

可选 - 对象

定义应用用于发布用户活动源的属性。

名称 类型 最大大小 必需 说明
activityTypes 对象的数组。 128 个项目 提供应用可以发布到用户活动源的活动类型。 活动 systemDefault 类型是保留的无效字符串。

activities.activityTypes

名称 类型 最大大小 必需 说明
type 字符串 32 个字符 ✔️ 通知类型。 请参阅下文
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"
         }
      ]
   }
}

configurableProperties

可选 - 数组

configurableProperties此块定义管理员可Teams的应用程序属性。 有关详细信息,请参阅启用 应用自定义

注意

必须定义至少一个属性。 最多可以在此块中定义九个属性。

可以定义以下任一属性:

  • name:应用显示名称。
  • shortDescription:应用的简短说明。
  • longDescription:应用的详细说明。
  • smallImageUrl:应用的大纲图标。
  • largeImageUrl:应用的颜色图标。
  • accentColor:用于 和 作为大纲图标的背景的颜色。
  • developerUrl:开发人员网站的 HTTPS URL。
  • privacyUrl:开发人员隐私策略的 HTTPS URL。
  • termsOfUseUrl:开发人员使用条款的 HTTPS URL。

supportedChannelTypes

可选 - 数组

在非标准通道中启用应用。 如果应用支持团队范围,并且定义了此属性,Teams 会在每个频道类型中相应地启用应用。 当前支持专用频道和共享频道类型。

注意

defaultBlockUntilAdminAction

可选 - 布尔值

一个 值,该值指示应用在管理员允许之前是否默认被阻止。
默认值: false

publisherDocsUrl

可选 - 字符串

https:// 页面的 URL,该页面为管理员提供其他应用信息。 字符串的最大长度为 2048 个字符。

defaultInstallScope

可选 - 字符串

指定默认情况下为此应用定义的安装范围。 定义的作用域是用户尝试添加应用时按钮上显示的选项。 选项有:

  • personal
  • team
  • groupChat
  • meetings

defaultGroupCapability

可选 - 对象

选择组安装范围后,它会定义用户安装应用时的默认功能。 选项有:

  • team
  • groupchat
  • meetings
名称 类型 最大大小 必需 说明
team String 当选择的安装范围为 team 时,此字段指定可用的默认功能。
选项: tabbotconnector
groupchat String 当选择的安装范围为 groupchat 时,此字段指定可用的默认功能。
选项: tabbotconnector
meetings String 当选择的安装范围为 meetings 时,此字段指定可用的默认功能。
选项: tabbotconnector

subscriptionOffer

可选 - 对象

指定与你的应用关联的 SaaS 产品/服务。

名称 类型 最大大小 必需 说明
offerId string 2048 个字符 ✔️ 包含你的产品/服务 ID Publisher产品/服务 ID 的唯一标识符,可在合作伙伴中心找到。 必须将字符串格式为 publisherId.offerId

meetingExtensionDefinition

可选 - 对象

指定会议扩展定义。 有关详细信息,请参阅 Teams 中的自定义“同框场景模式”场景

名称 类型 最大大小 必需 说明
scenes 对象的数组。 5 个项目 会议支持的场景。
supportsStreaming Boolean 一个布尔值,指示应用是否可以将会议的音频和视频内容流式传输到实时会议协议 (RTMP) 终结点。
默认值: false
videoFiltersConfigurationUrl String 2048 个字符 用于配置视频筛选器的 https:// URL。
supportsAnonymousGuestUsers 布尔值 一个布尔值,指示应用是否支持匿名来宾用户访问。
默认值: false

meetingExtensionDefinition.scenes

名称 类型 最大大小 必需 说明
id String ✔️ 场景的唯一标识符。 此 ID 必须是 GUID。
name String 128 个字符 ✔️ 场景的名称。
file String 2048 个字符 ✔️ 场景的元数据 json 文件的相对文件路径。
preview String 2048 个字符 ✔️ 场景的 PNG 预览图标的相对文件路径。
maxAudience 整数 50 ✔️ 场景中支持的最大受众数。
seatsReservedForOrganizersOrPresenters 整数 50 ✔️ 为组织者或演示者保留的席位数。

meetingExtensionDefinition.videoFilters

此对象指示会议支持的视频筛选器。

名称 类型 最大大小 必需 说明
id String ✔️ 视频筛选器的唯一标识符。 此 ID 必须是 GUID。
name String 128 个字符 ✔️ 视频筛选器的名称。
thumbnail String 2048 个字符 ✔️ 视频筛选器缩略图的相对文件路径。

授权

可选 - 对象

注意

authorization 仅应用清单版本 1.12 或更高版本受支持。

指定并合并应用的授权相关信息。

名称 类型 最大大小 必需 说明
permissions Object 应用运行所需的权限列表。

authorization.permissions

名称 类型 最大大小 必需 说明
resourceSpecific 对象的数组。 16 个项目 在资源实例级别保护数据访问的权限。

authorization.permissions.resourceSpecific

名称 类型 最大大小 必需 说明
type String ✔️ 特定于资源的许可类型 (RSC) 权限。
选项: ApplicationDelegated
name String 128 个字符 ✔️ RSC 权限的名称。 有关详细信息,请参阅 RSC 应用程序权限RSC 委托的权限

RSC 应用程序权限

应用程序权限允许应用在用户未登录的情况下访问数据。 有关应用程序权限的信息,请参阅 Microsoft Graph 和 Microsoft BotSDK 的 RSC 权限

RSC 委托的权限

委派的权限允许应用代表已登录用户访问数据。

  • 团队的 RSC 委派权限

    名称 说明
    ChannelMeetingParticipant.Read.Group 允许应用代表已登录用户读取与此团队关联的频道会议的参与者信息,包括姓名、角色、ID、加入和离开时间。
    ChannelMeetingIncomingAudio.Detect.Group 允许应用检测与团队关联的频道会议中的传入音频。
    ChannelMeetingActiveSpeaker.Read.Group 允许应用读取当前正在向与团队关联的频道会议发送音频的参与者。
    ChannelMeetingAudioVideo.Stream.Group 允许应用流式传输与团队关联的频道会议中的音频视频内容。
    InAppPurchase.Allow.Group 允许应用代表已登录用户向团队中的用户显示市场产品/服务,并在应用中完成购买。
    ChannelMeetingStage.Write.Group 允许应用代表已登录用户在与团队关联的频道会议中显示会议舞台上的内容。
    LiveShareSession.ReadWrite.Group 允许应用为与团队关联的会议创建和同步 Live Share 会话。 代表已登录用户提供有关会议名单的访问相关信息,例如成员的会议角色。
    MeetingParticipantReaction.Read.Group 允许应用读取与团队关联的频道会议中参与者的反应。
  • 聊天或会议的 RSC 委派权限

    名称 说明
    InAppPurchase.Allow.Chat 允许应用代表已登录用户在聊天和任何关联的会议中向用户显示市场优惠,并在应用中完成购买。
    MeetingStage.Write.Chat 允许应用代表已登录用户在与聊天关联的会议中显示会议舞台上的内容。
    OnlineMeetingParticipant.Read.Chat 允许应用代表已登录用户读取与聊天关联的会议的参与者信息,包括姓名、角色、ID、加入和离开时间。
    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 允许应用代表已登录用户显示用户市场产品/服务并完成用户在应用内的购买。
    OutgoingVideoStream.Write.User 允许应用修改用户的传出视频。
    MicrophoneStream.Read.User 允许应用读取用户的麦克风流。
    MeetingParticipantReaction.Read.User 允许应用在参与会议时读取用户的反应。

extensions

可选 - 对象

属性 extensions 指定应用清单中的 Outlook 外接程序,并简化 Microsoft 365 生态系统中的分发和获取。 每个应用仅支持一个扩展。

名称 类型 最大大小 必需 说明
requirements Object 指定扩展的客户端或主机要求集。
runtimes Array 配置可由每个扩展点使用的运行时和操作集。 有关详细信息,请参阅 Office 外接程序中的运行时
ribbons Array 定义功能区扩展点。
autoRunEvents Array 定义基于事件的激活扩展点。
alternates Array 指定与替换现有 Microsoft 365 解决方案的关系。 它用于对具有重叠功能的同一发布者隐藏加载项或设置其优先级。
audienceClaimUrl String 2048 个字符 指定扩展的 URL,并用于验证 Exchange 用户标识令牌。 有关详细信息,请参阅 Exchange 标识令牌内部

有关详细信息,请参阅 Microsoft 365 的 Office 外接程序清单

extensions.requirements

对象 extensions.requirements 指定在 Office 客户端上必须支持的作用域、外形规格和 Office JavaScript 库要求集,以便安装外接程序。 “功能区”、“运行时”、“备用”和“autoRunEvents”子属性也支持有选择地筛选出加载项的某些功能的要求。 有关详细信息,请参阅 Microsoft 365 的统一清单中的指定 Office 外接程序要求

名称 类型 最大大小 必需 说明
requirements.capabilities Array 标识要求集。
选项: name (必需) 、 minVersionmaxVersion
requirements.capabilities.name String ✔️ 标识要求集的名称。
requirements.capabilities.minVersion String 标识要求集的最低版本。
requirements.capabilities.maxVersion String 标识要求集的最大版本。
requirements.scopes 枚举数组 1 标识外接程序可在其中运行的范围,并定义可在其中运行扩展的 Microsoft 365 应用程序。 例如, mail (Outlook) 。
支持的值: mail
requirements.formFactors 枚举数组 标识支持加载项的外形规格。
支持的值: mobiledesktop

extensions.runtimes

数组 extensions.runtimes 配置每个扩展点可以使用的运行时和操作集。

名称 类型 最大大小 必需 说明
id 字符串 64 个字符 ✔️ 指定运行时的 ID。
type 字符串枚举 ✔️ 指定运行时的类型。 基于浏览器的运行时general支持的枚举值为 。
code Object ✔️ 指定运行时的代码位置。 基于 runtime.type,加载项可以使用 JavaScript 文件或带有嵌入 script 标记的 HTML 页面,该标记指定 JavaScript 文件的 URL。 在不确定的情况下 runtime.type ,这两个 URL 都是必需的。
code.page URL ✔️ 指定包含嵌入 script 标记的网页的 URL,该标记指定要在 基于浏览器的运行时) 加载 (JavaScript 文件的 URL。
code.script URL 指定要在仅限 JavaScript 的运行时中加载的 JavaScript 文件的 URL。
lifetime 字符串枚举 指定运行时的生存期。 具有生存期的 short 运行时不会跨执行保留状态,而具有生存期的 long 运行时则保留状态。 有关详细信息,请参阅 Office 外接程序中的运行时
actions Array 指定运行时支持的一组操作。 操作要么运行 JavaScript 函数,要么打开任务窗格等视图。
actions.id 字符串 64 个字符 ✔️ 指定传递给代码文件的操作的 ID。
actions.type String ✔️ 指定操作的类型。 该 executeFunction 类型在不等待 JavaScript 函数完成的情况下运行 JavaScript 函数,并且该 openPage 类型在给定视图中打开一个页面。
actions.displayName 字符串 64 个字符 指定操作的显示名称,它不是调用) 配置的 tabs.groups.controls.label 操作 (按钮或菜单项的标签。
actions.pinnable 布尔值 指定任务窗格支持固定,即使用户选择其他对象,任务窗格也可以继续处于打开状态。
默认值: false
actions.view 字符串 64 个字符 指定必须在其中打开页面的视图。 它仅在 为 openPageactions.type使用。
actions.multiselect 布尔值 指定最终用户是否可以选择多个项目(例如多个电子邮件),并将操作应用于所有这些项目。
actions.supportsNoItemContext 布尔值 允许在未启用阅读窗格或未选择消息的情况下激活任务窗格加载项。
requirements Object 指定 Office 客户端上必须支持的范围、formFactors 和 Office JavaScript 库要求集,以便将运行时包含在外接程序中。 有关详细信息,请参阅 Microsoft 365 的统一清单中的指定 Office 外接程序要求
requirements.capabilities Array 标识要求集。
选项: name (必需) 、 minVersionmaxVersion
requirements.capabilities.name String ✔️ 标识要求集的名称。
requirements.capabilities.minVersion String 标识要求集的最低版本。
requirements.capabilities.maxVersion String 标识要求集的最大版本。
requirements.scopes 枚举数组 1 标识外接程序可在其中运行的范围,并定义可在其中运行扩展的 Microsoft 365 应用程序。 例如, mail (Outlook) 。
支持的值: mail
requirements.formFactors 枚举数组 标识支持加载项的外形规格。
支持的值: mobiledesktop

若要使用 extensions.runtimes,请参阅 创建外接程序命令为任务窗格配置运行时为函数命令配置运行时

extensions.ribbons

属性 extensions.ribbons 提供将 加载项命令 (按钮和菜单项) 添加到 Microsoft 365 应用程序的功能区的功能。 根据要求和顺序第一顺序从数组中选择功能区定义。

名称 类型 最大大小 必需 说明
contexts Array 7 指定用户可以在其中使用功能区自定义的 Microsoft 365 应用程序窗口。 数组中的每个项都是字符串数组的成员。
支持的值:mailRead、、mailComposemeetingDetailsOrganizermeetingDetailsAttendeeonlineMeetingDetailsOrganizerlogEventMeetingDetailsAttendeedefault
requirements Object 指定 Office 客户端上必须支持的范围、formFactors 和 Office JavaScript 库要求集,以便显示功能区自定义项。 有关详细信息,请参阅 Microsoft 365 的统一清单中的指定 Office 外接程序要求
requirements.capabilities Array 标识要求集。
选项: name (必需) 、 minVersionmaxVersion
requirements.capabilities.name String ✔️ 标识要求集的名称。
requirements.capabilities.minVersion String 标识要求集的最低版本。
requirements.capabilities.maxVersion String 标识要求集的最大版本。
requirements.scopes 枚举数组 1 标识外接程序可在其中运行的范围,并定义可在其中运行扩展的 Microsoft 365 应用程序。 例如, mail (Outlook) 。
支持的值: mail
requirements.formFactors 枚举数组 标识支持加载项的外形规格。
支持的值: mobiledesktop
tabs Array ✔️ 配置 Microsoft 365 应用程序功能区上的自定义选项卡。
tabs.id 字符串 64 个字符 指定应用中选项卡的 ID。
tabs.builtinTabId 字符串 64 个字符 指定内置 Office 功能区选项卡的 ID。可能的值因 Office 主机应用程序而异。 目前,仅支持 Outlook 加载项,Outlook 的唯一允许值为“TabDefault”。 默认选项卡取决于 Outlook 加载项的显示位置,如“extensions.ribbons.contexts”属性中确定的那样。 在main Outlook 窗口中,它是“开始”选项卡,在邮件窗口中,它是“邮件”选项卡,在会议窗口中,它是“会议”选项卡。
tabs.label 字符串 64 个字符 指定为选项卡显示的文本。
tabs.position Object 配置自定义选项卡相对于功能区上其他选项卡的位置。
tabs.position.builtinTabId 字符串 64 个字符 ✔️ 指定自定义选项卡应放置在其旁边的内置选项卡的 ID。 有关详细信息,请参阅 查找控件和控件组的 ID
tabs.position.align 字符串枚举 ✔️ 定义自定义选项卡相对于指定内置选项卡的对齐方式。
支持的值: afterbefore
tabs.groups Array 在非移动设备的功能区选项卡上定义控件组。 对于移动设备,请参阅 tabs.customMobileRibbonGroups 下文。
tabs.groups.id 字符串 64 个字符 指定应用内选项卡组的 ID。 它必须不同于 Microsoft 365 应用程序和任何其他自定义组中的任何内置组 ID。
tabs.groups.label 字符串 64 个字符 指定为组显示的文本。
tabs.groups.icons Array 指定为组显示的图标。
tabs.groups.icons.size 数字 ✔️ 指定图标的大小(以像素为单位),枚举为 1620243240486480
所需的映像大小: 163280
tabs.groups.icons.url URL ✔️ 指定图标的绝对 URL。
tabs.groups.controls Array 配置组中的按钮和菜单。
tabs.groups.controls.id 字符串 64 个字符 ✔️ 指定应用中控件的 ID。 它必须不同于 Microsoft 365 应用程序和任何其他自定义控件中的任何内置控件 ID。
tabs.groups.controls.items Array 配置菜单控件的项。
tabs.groups.controls.items.id String ✔️ 指定应用内项的 ID。
tabs.groups.controls.items.type 字符串枚举 ✔️ 定义控件项类型。
支持的值: menubutton
tabs.groups.controls.items.label 字符串 64 个字符 ✔️ 指定为项显示的文本。
tabs.groups.controls.items.icons Array 配置自定义项的图标。
tabs.groups.controls.items.icons.size 数字 ✔️ 指定图标的大小(以像素为单位),枚举为 1620243240486480
所需的映像大小: 163280
tabs.groups.controls.items.icons.url URL ✔️ 指定图标的绝对 URL。
tabs.groups.controls.items.supertip ✔️ 为自定义项配置超级提示。 超级提示是一项 UI 功能,当光标悬停在控件上时,它会显示有关控件的简短帮助信息框。 该框可能包含多行文本。
tabs.groups.controls.items.supertip.title 字符串 64 个字符 ✔️ 指定超级提示的标题文本。
tabs.groups.controls.items.supertip.description String 128 个字符 ✔️ 指定超级提示的说明。
tabs.groups.controls.items.actionId 字符串 64 个字符 ✔️ 指定用户选择控件或菜单项时所执行的操作的 ID。 必须与 actionId 匹配 runtime.actions.id
tabs.groups.controls.items.enabled 布尔值 指示控件最初是否已启用。
默认值: true
tabs.groups.controls.items.overriddenByRibbonApi 布尔值 指定在应用程序和平台组合上是否隐藏了组、按钮、菜单或菜单项,这些组合支持 API (Office.ribbon.requestCreateControls) 在功能区上安装自定义上下文选项卡。
默认值: false
tabs.groups.controls.type String ✔️ 定义控件类型。
支持的值: buttonmenu
tabs.groups.controls.builtinControlId 字符串 64 个字符 ✔️ 指定现有 Microsoft 365 控件的 ID。 有关详细信息,请参阅 查找控件和控件组的 ID
tabs.groups.controls.label 字符串 64 个字符 ✔️ 指定为控件显示的文本。
tabs.groups.controls.icons Array ✔️ 定义控件的图标。 必须至少有三个子对象:每个具有 size3280 像素的属性16
tabs.groups.controls.icons.size 数字 ✔️ 指定图标的大小(以像素为单位),枚举为 1620243240486480
所需的映像大小: 163280
tabs.groups.controls.icons.url URL 指定图标的绝对 URL。
tabs.groups.controls.supertip Object ✔️ 为控件配置超级提示。
tabs.groups.controls.supertip.title 字符串 64 个字符 ✔️ 指定超级提示的标题文本。
tabs.groups.controls.supertip.description String 128 个字符 ✔️ 指定超级提示的说明。
tabs.groups.controls.actionId 字符串 64 个字符 如果控件类型为 ,则 button为 必需。 如果控件类型为 , menu请不要使用 。 指定用户选择控件时所执行的操作的 ID。 必须与 actionId 对象中runtimes操作的 属性匹配runtime.actions.id
tabs.groups.controls.enabled 布尔值 指示控件最初是否已启用。
默认值: true
tabs.groups.controls.overriddenByRibbonApi 布尔值 指定在支持在功能区上安装自定义上下文选项卡的 API (Office.ribbon.requestCreateControls) 的应用程序和平台组合上是否隐藏组、按钮、菜单或菜单项。
默认值: false
tabs.groups.builtinGroupId 字符串 64 个字符 指定内置组的 ID。 有关详细信息,请参阅 查找控件和控件组的 ID
tabs.customMobileRibbonGroups Array 10 在移动设备上功能区的默认选项卡上定义控件组。 此数组属性只能存在于属性 tabs.builtinTabId 设置为“DefaultTab”的选项卡对象上。 对于非移动设备,请参阅 tabs.groups 上文。
tabs.customMobileRibbonGroups.id String 250 个字符 ✔️ 指定组的 ID。 它必须不同于 Microsoft 365 应用程序和任何其他自定义组中的任何内置组 ID。
tabs.customMobileRibbonGroups.label 字符串 32 个字符 ✔️ 指定组上的标签。
tabs.customMobileRibbonGroups.controls Array 20 ✔️ 定义组中的控件。 仅支持移动按钮。
tabs.customMobileRibbonGroups.controls.id String 250 个字符 ✔️ 指定控件的 ID,例如“msgReadFunctionButton”。
tabs.customMobileRibbonGroups.controls.type 字符串枚举 ✔️ 指定控件的类型。 目前仅支持“MobileButton”。
tabs.customMobileRibbonGroups.controls.label 字符串 32 个字符 ✔️ 指定控件上的标签。
tabs.customMobileRibbonGroups.controls.actionId 字符串 64 个字符 ✔️ 指定用户选择控件时所执行的操作的 ID。 必须与 actionId 对象中runtimes操作的 属性匹配runtime.actions.id
tabs.customMobileRibbonGroups.controls.icons Array 9 ✔️ 指定将根据移动设备屏幕的尺寸和 DPI 在控件上显示的图标。 必须正好有 9 个图标。
tabs.customMobileRibbonGroups.controls.icons.size 数字枚举 ✔️ 图标的大小(以像素为单位)。 可能的大小为 25、32 和 48。 对于图标 scale 属性的每个可能值,每个大小必须正好有一个。
tabs.customMobileRibbonGroups.controls.icons.url String 2048 个字符 ✔️ 图标图像文件的完整绝对 URL。
tabs.customMobileRibbonGroups.controls.icons.scale 数字枚举 ✔️ 指定 iOS 设备的 UIScreen.scale 属性。 可能的值为 1、2 和 3。 对于图标 size 属性的每个可能值,每个值必须正好有一个。

若要使用 extensions.ribbons,请参阅 创建外接程序命令为任务窗格命令配置 UI 以及 为函数命令配置 UI

extensions.autoRunEvents

属性 extensions.autoRunEvents 定义基于事件的激活扩展点。

名称 类型 最大大小 必需 说明
events Array 20 ✔️ 配置导致 Outlook 外接程序中的操作自动运行的事件。 例如,请参阅 在 Outlook 外接程序中使用智能警报和 OnMessageSendOnAppointmentSend 事件
events.type 字符串 64 个字符 指定要事件的类型。 有关支持的类型,请参阅 支持的事件
events.actionId 字符串 64 个字符 标识触发事件时执行的操作。 必须与 actionId 匹配 runtime.actions.id
events.options Object 配置 Outlook 如何响应事件。
events.options.sendMode String ✔️ 指定要在邮件发送操作期间执行的操作。
支持的值: promptUsersoftBlockblock。 有关详细信息,请参阅 可用的发送模式选项
requirements Object 指定作用域、formFactors 和 Office JavaScript 库要求集,这些要求集必须在 Office 客户端上受支持才能运行事件处理代码。 有关详细信息,请参阅 Microsoft 365 的统一清单中的指定 Office 外接程序要求
requirements.capabilities Array 标识要求集。
选项: name (必需) 、 minVersionmaxVersion
requirements.capabilities.name String ✔️ 标识要求集的名称。
requirements.capabilities.minVersion String 标识要求集的最低版本。
requirements.capabilities.maxVersion String 标识要求集的最大版本。
requirements.scopes 枚举数组 1 标识外接程序可在其中运行的范围,并定义可在其中运行扩展的 Microsoft 365 应用程序。 例如, mail (Outlook) 。
支持的值: mail
requirements.formFactors 枚举数组 标识支持加载项的外形规格。
支持的值: mobiledesktop

extensions.alternates

当你发布了具有重叠功能的多个加载项时,属性 extensions.alternates 用于隐藏特定的市场内加载项或确定其优先级。

名称 类型 最大大小 必需 说明
prefer Object 指定与等效 COM 加载项和/或 XLL 加载项的向后兼容性。
prefer.comAddin Object 指定必须用于代替适用于 Windows 的 Microsoft 365 Web 外接程序的 COM 加载项。
prefer.comAddin.progId 字符串 64 个字符 ✔️ 标识可在其中运行扩展的应用程序类型。
hide Object 配置如何隐藏安装加载项时发布的另一个加载项,以便用户不会在 Microsoft 365 UI 中看到这两者。 例如,如果之前发布了使用旧 XML 应用清单的外接程序,并且将其替换为使用新 JSON 应用清单的版本,请使用此属性。
hide.storeOfficeAddin Object 指定 Microsoft AppSource 中可用的 Microsoft 365 外接程序。
hide.storeOfficeAddin.officeAddinId 字符串 64 个字符 ✔️ 指定要隐藏的市场内外接程序的 ID。 如果市场中的外接程序使用 JSON 应用清单 id ,则 GUID 取自应用清单属性。 如果市场内外接程序使用 XML 应用清单, <Id> 则 GUID 取自 元素。
hide.storeOfficeAddin.assetId 字符串 64 个字符 ✔️ 指定要隐藏的市场内外接程序的 AppSource 资产 ID。
hide.customOfficeAddin Object 配置如何隐藏未通过 AppSource 分发的市场内加载项。
hide.customOfficeAddin.officeAddinId 字符串 64 个字符 ✔️ 指定要隐藏的市场内外接程序的 ID。 如果市场中的外接程序使用 JSON 应用清单 id ,则 GUID 取自应用清单属性。 如果市场内外接程序使用 XML 应用清单, <Id> 则 GUID 取自 元素。
requirements Object 指定 Office 客户端上必须支持的范围、formFactors 和 Office JavaScript 库要求集,以便“hide”、“prefer”或“alternateIcons”属性生效。 有关详细信息,请参阅 Microsoft 365 的统一清单中的指定 Office 外接程序要求
requirements.capabilities Array 标识要求集。
选项: name (必需) 、 minVersionmaxVersion
requirements.capabilities.name String ✔️ 标识要求集的名称。
requirements.capabilities.minVersion String 标识要求集的最低版本。
requirements.capabilities.maxVersion String 标识要求集的最大版本。
requirements.scopes 枚举数组 1 标识外接程序可在其中运行的范围,并定义可在其中运行扩展的 Microsoft 365 应用程序。 例如, mail (Outlook) 。
支持的值: mail
requirements.formFactors 枚举数组 标识支持加载项的外形规格。
支持的值: mobiledesktop
alternateIcons Object 指定用于在旧版 Office 上表示加载项的main图标。 如果 Office 加载项可安装在 Office on Mac、永久 Office 许可证和 Microsoft 365 订阅版本的 Office 中(早于 2304 (内部版本 16320.00000) )中, 则需要 此属性。
alternateIcons.icon Object ✔️ 指定用于表示外接程序的图像文件的属性。
alternateIcons.icon.size 数字枚举 ✔️ 此属性保留供将来使用。 该值必须为 64。
alternateIcons.icon.url String 2048 个字符 ✔️ 指定用于表示外接程序的图像文件的完整绝对 URL。 图标图像必须为 64 x 64 像素,并使用以下文件格式之一:GIF、JPG、PNG、EXIF、BMP、TIFF。
alternateIcons.highResolutionIcon Object ✔️ 指定用于在高 DPI 屏幕上表示加载项的图像文件的属性。
alternateIcons.highResolutionIcon.size 数字枚举 ✔️ 此属性保留供将来使用。 该值必须为 64 (而不是 128) 。
alternateIcons.highResolutionIcon.url String 2048 个字符 ✔️ 指定用于在高 DPI 屏幕上表示加载项的图像文件的完整绝对 URL。 图标图像必须为 128 x 128 像素,并使用以下文件格式之一:GIF、JPG、PNG、EXIF、BMP、TIFF。

actions

注意

对象是操作对象的数组。 只有提供操作的解决方案才需要此块。

名称 类型 最大大小 必需 说明
id 字符串 64 个字符 ✔️ 默认区域设置中用于编录操作的标识符字符串。 对于此应用的所有操作,必须是唯一的。 例如,openDocInContoso
displayName 字符串 64 个字符 ✔️ 操作的显示名称。 大写首字母和品牌名称。 例如,“添加到供应商”、“在 Contoso 中打开”和“请求签名”。
description String ✔️ 指定操作的说明。
intent 字符串枚举 ✔️ 指定意向的类型。 支持的枚举值为 openaddTocustom
handlers 对象的数组。 ✔️ 处理程序对象的数组定义如何管理 Actions。 在当前公共预览版中,为每个操作添加单个处理程序。

actions.handlers

定义操作的处理程序。 处理程序是处理程序对象的数组。 每个操作必须至少有一个处理程序。

名称 类型 最大大小 必需 说明
supportedObjects Object 定义哪些对象可以触发此操作的对象。
type 字符串枚举 ✔️ 指定 Actions 的处理程序类型。 支持的枚举值为 openPage
pageInfo Object 如果处理程序类型为 ,则 openPage为 必需。 包含要打开的页面的元数据的对象。

actions.handlers.supportedObjects

可触发此操作的受支持对象类型。

名称 类型 最大大小 必需 说明
file Object 支持的文件类型。
file.extensions 字符串数组 字符串数组。 操作可以触发的文件类型的文件扩展名。 例如,pdf 和 docx。

actions.handlers.pageInfo

如果处理程序类型为 ,则 openPage为 必需。 包含要打开的页面的元数据的对象。

名称 类型 最大大小 必需 说明
PageId String 映射到 EntityId 静态选项卡的 。
SubPageId String 映射到 SubEntityId 静态选项卡的 。

dashboardCards

可选 - 数组

定义可固定到仪表板(如Microsoft Viva Connections)的卡片列表,以提供应用信息的汇总视图。 有关为Viva Connections仪表板创建卡片的详细信息,请参阅机器人支持的自适应卡片扩展概述

属性 dashboardCards 是 类型的 object元素的数组。

dashboardCards.dashboardCard

定义单个仪表板 卡及其属性。

名称 类型 最大大小 必需 说明
id String ✔️ 此仪表板 卡的唯一标识符。 ID 必须是 GUID。
displayName String 255 个字符 ✔️ 卡的显示名称。
description String 255 个字符 ✔️ 卡的说明。
pickerGroupId String ✔️ 卡选取器中组的 ID。 ID 必须是 GUID。
icon Object 指定卡的图标。
contentSource Object ✔️ 指定卡内容的源
defaultSize String ✔️ 仪表板 卡的呈现大小。 选项: mediumlarge

dashboardCards.dashboardCard.icon

定义给定仪表板 卡的图标属性。

名称 类型 最大大小 必需 说明
iconUrl 字符串 2048 个字符 要显示在工具箱和卡栏中的卡图标的位置。
officeUIFabricIconName String 255 个字符 卡的 Office UI Fabric 或 Fluent UI 图标友好名称。 如果未指定 iconUrl, 则使用此值。

dashboardCards.dashboardCard.contentSource

定义给定仪表板 卡的内容源。

名称 类型 最大大小 必需 说明
sourceType String 表示卡内容的源。 选项: bot
botConfiguration Object 机器人源的配置。 如果 设置为 botsourceType则为 必需。

dashboardCards.dashboardCard.contentSource.botConfiguration

名称 类型 最大大小 必需 说明
botId String 使用 Bot Framework 注册的自动程序的唯一 Microsoft 应用 ID。 ID 必须是 GUID。

另请参阅