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

有关如何启用开发人员预览的信息,请参阅 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://example.com/",
        "privacyUrl": "https://example.com/privacy",
        "termsOfUseUrl": "https://example.com/app-tos",
        "mpnId": "1234567890"
    },
    "localizationInfo": {
        "defaultLanguageTag": "en",
        "defaultLanguageFile": "en.json",
        "additionalLanguages": [
            {
                "languageTag": "es",
                "file": "es.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",
        "color32x32": "%FILENAME-32x32px%"
    },
    "accentColor": "%HEX-COLOR%",
    "elementRelationshipSet": {
      "oneWayDependencies" : [
        {
          "element" : {
            "name" : "composeExtensions",
            "id" : "composeExtension-id",
            "commandIds": ["exampleCmd1", "exampleCmd2"]
          },
          "dependsOn" : [
              {"name" : "bots", "id" : "bot-id"}
          ]
        }
      ],
      "mutualDependencies" : [
        [
                {"name" : "bots", "id" : "bot-id"}, 
                {"name" : "staticTabs", "id" : "staticTab-id"},
                {"name" : "composeExtensions", "id" : "composeExtension-id"},
                {"name" : "configurableTabs", "id": "configurableTab-id"}
        ]
      ],
    "copilotAgents": {
        "declarativeAgents": [
            {
                "id": "agent1",
                "file": "declarativeAgent1.json"
            }
        ]
    },
    "configurableTabs": [
        {
            "id": "configurableTab-id",
            "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"
            ],
            "requirementSet": {
                "hostMustSupportFunctionalities": [
                  {"name": "dialogUrl"},
                  {"name": "dialogUrlBot"}
                ]
            }
        }
    ],
    "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"
                        }
                    ]
                }
            ],
            "requirementSet": {
                "hostMustSupportFunctionalities": [
                  {"name": "dialogUrl"},
                  {"name": "dialogUrlBot"}
                ]
            }
        }
    ],
    "connectors": [
        {
            "connectorId": "GUID-FROM-CONNECTOR-DEV-PORTAL%",
            "configurationUrl": "https://contoso.com/teamsconnector/configure",
            "scopes": [
                "team"
            ]
        }
    ],
    "composeExtensions": [
        {
            "botId": "%MICROSOFT-APP-ID-REGISTERED-WITH-BOT-FRAMEWORK%",
            "id": "composeExtension-id",
            "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"
                                ]
                            }
                        }
                    ]
                }
            ],
            "requirementSet": {
                "hostMustSupportFunctionalities": [
                  {"name": "dialogUrl"},
                  {"name": "dialogUrlBot"}
                ]
            }
        }
    ],
    "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"
    },
    "showLoadingIndicator": false,
    "isFullScreen": false,
    "defaultBlockUntilAdminAction": false,
    "publisherDocsUrl": "https://contoso.com/teamtabapp/admin-doc",
    "scopeConstraints": { 
        "teams": [ 
            { "id": "%TEAMS-THREAD-ID" } 
        ], 
        "groupChats": [ 
          { "id": "%GROUP-CHATS-THREAD-ID" } 
        ] 
    },    
    "authorization": {
        "permissions": {
            "resourceSpecific": [
                {
                    "type": "Application",
                    "name": "ChannelSettings.Read.Group"
                },
                {
                    "type": "Delegated",
                    "name": "ChannelMeetingParticipant.Read.Group"
                }
            ]
        }
    },
"actions": [
    {
      "id": "addTodoTask",
      "displayName": "Add ToDo task",
      "intent": "addTo",
      "description": "Add this file with a short note to my to do list",
      "handlers": [
        {
          "type": "openPage",
          "supportedObjects": {
            "file": {
              "extensions": [
                "doc",
                "pdf"
              ]
            }
          },
          "pageInfo": {
            "pageId": "newTaskPage",
            "subPageId": ""
          }
        }
      ]
    },
  ],
    "configurableProperties": [
        "name",
        "shortDescription",
        "longDescription",
        "smallImageUrl",
        "largeImageUrl",
        "accentColor",
        "developerUrl",
        "privacyUrl",
        "termsOfUseUrl"
    ],
    "supportedChannelTypes": [
        "sharedChannels",
        "privateChannels"
    ],
    "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

可选 (但建议) – 字符串

引用应用清单的 JSON 架构 的 https:// 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,在此处输入,然后在 添加机器人时重复使用它。

developer

必需 - 对象

指定有关开发人员及其业务的信息。 对于 Teams 应用商店应用,该值必须与你在合作伙伴中心应用提交表单中提供的值匹配。

名称 类型 最大大小 必需 说明
name 字符串 32 个字符 ✔️ 开发人员的显示名称。
websiteUrl String 2048 个字符 ✔️ 指向网站上应用特定页面 的 https:// URL。
privacyUrl String 2048 个字符 ✔️ 应用隐私策略 的 https:// URL。
termsOfUseUrl String 2048 个字符 ✔️ 应用使用条款的 https:// URL。
mpnId String 10 个字符 Microsoft云合作伙伴计划 (CCP) ID (以前称为 Microsoft 合作伙伴网络 (MPN) ID) ,用于标识创建应用的合作伙伴组织。 可选
contactInfo Object 应用开发人员的联系信息。

developer.contactInfo

可选 - 对象

客户用来通过 Teams 聊天或电子邮件与你联系的联系信息。 客户在评估你的应用时,或者在应用不起作用时是否有任何有关你的应用的查询,可能需要额外的信息。 客户可以使用 Teams 聊天与你联系,因此请请求 IT 管理员在你的组织中 启用外部通信 。 有关详细信息,请参阅 开发人员提供的应用和联系信息

注意

只能提供一个联系人电子邮件地址。

建议及时对客户查询进行会审,并在组织内部将这些查询路由到其他职能部门以获取答案。 它有助于提高应用采用率,建立开发人员信任,并在应用盈利时增加收入。

名称 类型 最大大小 必需 说明
defaultsupport Object ✔️ 应用的默认联系人信息。
defaultsupport.userEmailsForChatSupport Array 10 ✔️ Email地址以使用 Teams 聊天接收客户查询。 虽然应用清单最多允许 10 个电子邮件地址,但 Teams 仅使用第一个电子邮件地址来让 IT 管理员与你通信。 对象是包含类型字符串的所有元素的数组。 电子邮件的最大长度为 80 个字符。
defaultsupport.emailsForEmailSupport Array 1 ✔️ 联系电子邮件进行客户查询 (最低:1;最大值:1) 。 对象是包含类型字符串的所有元素的数组。 电子邮件的最大长度为 80 个字符。

localizationInfo

可选 - 对象

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

名称 类型 最大大小 必需 说明
defaultLanguageTag String ✔️ 此应用清单文件中字符串的语言标记。 例如,en
defaultLanguageFile String 2048 个字符 包含字符串的.json文件的相对文件路径。 如果未指定,则直接从应用清单文件获取字符串。 支持多种语言的 Copilot 代理需要默认语言文件。

localizationInfo.additionalLanguages

具有以下属性的 对象的数组,用于指定其他语言翻译。

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

name

必需 - 对象

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

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

说明

必需 - 对象

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

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

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

图标

必需 - 对象

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

名称 最大大小 必需 说明
outline 2048 个字符 ✔️ 透明 32x32 PNG 大纲图标的相对文件路径。 边框颜色必须为白色。
color 2048 个字符 ✔️ 完整颜色 192x192 PNG 图标的相对文件路径。
color32x32 2048 个字符 具有透明背景的全彩色 32x32 PNG 图标的相对文件路径。 在 Outlook 中固定应用和 Microsoft 365 应用时使用。

accentColor

必需 - 字符串

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

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

elementRelationshipSet

可选 - 对象

描述各个应用功能之间的关系,包括 staticTabsconfigurableTabscomposeExtensionsbots。 它用于指定运行时依赖项,以确保应用仅在适用的 Microsoft 365 主机(如 Teams、Outlook 和 Microsoft 365 (Office) 应用)中启动。 有关详细信息,请参阅 如何在应用清单中指定运行时要求

名称 类型 最大大小 必需 说明
oneWayDependencies Array 定义应用组件之间的一个或多个单向依赖项关系, (每个组件由 oneWayDependency 具有 依赖项elementdependsOnelement) 的对象表示。
mutualDependencies Array 定义应用功能之间的一个或多个相互依赖关系, (每个功能由) mutualDependency 对象数组element表示。

元素

可选 - 对象

描述 中 (element) elementRelationshipSet的应用功能。

名称 类型 最大大小 必需 说明
name 字符串枚举 ✔️ 应用功能的类型。 支持的值: botsstaticTabs、、 composeExtensionsconfigurableTabs
id String ✔️ 如果机器人、选项卡或消息扩展有多个实例,则此属性定义功能的特定实例。 它映射到 botId 机器人、 entityId 静态选项卡和 id 可配置选项卡和消息扩展。
commandIds 字符串数组 依赖于指定 dependsOn 功能的一个或多个消息扩展命令的列表。 仅用于消息扩展。

elementRelationshipSet.oneWayDependency

介绍一个应用功能 (X) 到另一个 (Y) 的单向依赖项。 如果 Microsoft 365 运行时主机不支持 Y) (所需的功能,则依赖功能 (X) 不会加载或显示给用户。

可选 - 对象

名称 类型 最大大小 必需 说明
element Object ✔️ 表示单个应用功能 (由 element) 表示,该功能对正在加载的另一个功能具有单向运行时依赖项。
dependsOn Array ✔️ 定义一个或多个应用功能, (每个功能由 element 指定的 element 加载所需的) 表示。

elementRelationshipSet.mutualDependencies

描述两个或多个应用功能之间的一组相互依赖关系。 Microsoft 365 运行时主机必须支持所有必需的功能,才能使其中任何功能可供该主机中的用户使用。

可选 – 数组 (每个数组包含两个或多个 element 对象)

copilotAgents

可选 - 对象

定义要智能 Microsoft 365 Copilot 副驾驶® (以前称为 copilotExtensions) 的一个或多个代理。 声明性代理是在其相同的业务流程协调程序和基础模型上运行的智能 Microsoft 365 Copilot 副驾驶®的自定义 (以前称为 declarativeCopilots) 。

名称 类型 最大大小 必需 说明
declarativeAgents 对象的数组。 1 ✔️ 每个对象定义声明性代理的数组。

declarativeAgents

表示智能 Microsoft 365 Copilot 副驾驶®的自定义,由其清单文件定义。

名称 类型 最大大小 必需 说明
id String ✔️ 代理的唯一标识符。 使用 Microsoft Copilot Studio 生成代理时,这是自动生成的。 否则,请根据自己的约定或首选项手动分配值。
file String ✔️ 应用包中 声明性代理清单 文件的相对路径。

configurableTabs

可选 - 数组

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

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

名称 类型 最大大小 必需 说明
id String 可配置选项卡的唯一标识符。在 elementRelationshipSet 下定义单向和相互应用功能依赖项时使用。
configurationUrl String 2048 个字符 ✔️ 配置选项卡时要使用的 https:// URL。
canUpdateConfiguration 布尔值 一个值,该值指示创建后用户是否可以更新选项卡配置的实例。
默认值: 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 个字符 如果用户选择在浏览器中查看 ,https:// 指向 的 URL。
scopes 枚举数组 3 ✔️ 静态选项卡支持 personalteamgroupChat 范围,这意味着它可以作为个人、群组聊天和频道会议体验的一部分进行预配。
searchUrl String 2048 个字符 用于定向用户的搜索查询的 https:// URL。
context 枚举数组 8 选项卡所属的范围 contextItem 集。
默认值:personalTab、、channelTabprivateChatTabmeetingChatTabmeetingDetailsTabmeetingSidePanel、、meetingStageteamLevelApp
supportedPlatform 枚举数组 3 选项卡所属的范围 supportedPlatform 集。
默认值: desktopmobileteamsMeetingDevices
requirementSet Object 选项卡在 Microsoft 365 主机应用程序中正常运行的运行时要求。 如果运行时主机不支持一个或多个要求,则主机不会加载选项卡。

staticTabs.requirementSet

可选 - 对象

名称 类型 最大大小 必需 说明
requirementSet.hostMustSupportFunctionalities 对象的数组。 ✔️ 指定选项卡正常运行所需的一个或多个运行时功能。 支持的值:dialogUrldialogUrlBot、、dialogAdaptiveCarddialogAdaptiveCardBot。 有关详细信息,请参阅 如何在应用清单中指定运行时要求

机器人

可选 - 数组

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

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

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

bots.configuration

可选 - 对象

名称 类型 最大大小 必需 说明
team.fetchTask Boolean ✔️ 一个布尔值,指示它是否应动态提取对话 (TeamsJS v1.x 中称为任务模块) 。
默认值: false
team.taskInfo Object ✔️ 使用机器人时要预加载的对话。
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

可选 - 数组

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

名称 类型 最大大小 必需 说明
scopes 枚举数组 3 ✔️ 指定命令列表有效的作用域。 选项包括 teampersonalgroupChat
commands 对象的数组。 10 ✔️ 机器人支持的命令数组。

bots.commandLists.commands

必需 - 数组

名称 类型 最大大小 必需 说明
title 字符串 32 个字符 ✔️ 机器人命令名称。
description String 128 个字符 ✔️ 简单的文本说明或命令语法及其参数的示例。

bots.requirementSet

可选 - 对象

名称 类型 最大大小 必需 说明
requirementSet.hostMustSupportFunctionalities 对象的数组。 ✔️ 指定机器人正常运行所需的一个或多个运行时功能。 支持的值:dialogUrldialogUrlBot、、dialogAdaptiveCarddialogAdaptiveCardBot。 有关详细信息,请参阅 如何在应用清单中指定运行时要求

连接器

可选 - 数组

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

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

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

composeExtensions

可选 - 数组

定义应用的消息扩展。

注意

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

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

名称 类型 最大大小 必需 说明
id String 消息扩展的唯一标识符。 在 elementRelationshipSet 下定义单向和相互应用功能依赖项时使用。
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 布尔值 一个值,该值指示是否为应用配置了单一登录。
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
requirementSet Object 消息扩展在 Microsoft 365 主机应用程序中正常运行的运行时要求。 如果运行时主机不支持一个或多个要求,则主机不会加载消息扩展。

composeExtensions.commands

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

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

名称 类型 最大大小 必需 说明
id 字符串 64 个字符 ✔️ 命令的 ID。
type 字符串 64 个字符 命令的类型。 queryaction之一。 默认值:query
samplePrompts Array 5 智能 Microsoft 365 Copilot 副驾驶®用于向用户显示插件支持的提示的属性。 对于智能 Microsoft 365 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 个字符 使用大型语言模型 (LLM) 智能 Microsoft 365 Copilot 副驾驶®使用的命令的语义说明。
initialRun 布尔值 一个布尔值,该值指示命令最初是否在没有参数的情况下运行。
默认值: false
fetchTask 布尔值 一个布尔值,指示它是否必须动态提取对话。
默认值: false
taskInfo Object 指定要在使用消息扩展命令时预加载的对话。
taskInfo.title 字符串 64 个字符 初始对话框标题。
taskInfo.width 字符串 16 个字符 对话框宽度 - 以像素为单位的数字或默认布局,例如 largemediumsmall
taskInfo.height String 16 个字符 对话框高度 - 以像素为单位的数字或默认布局,例如 largemediumsmall
taskInfo.url String 2048 个字符 初始 Web 视图 URL。
parameters 对象的数组。 5 命令采用的参数列表。
parameters.name 字符串 64 个字符 ✔️ 在客户端中显示的参数的名称。 这包含在用户请求中。
对于基于 Api 的消息扩展,名称必须映射到 parameters.name OpenAPI 说明中的 。 如果要引用请求正文架构中的属性,则该名称必须映射到 properties.name 或 查询参数。
parameters.title 字符串 32 个字符 ✔️ 参数的用户友好标题。
parameters.description String 128 个字符 描述此参数用途的用户友好字符串。
parameters.semanticDescription String 2000 个字符 大型语言模型 (LLM) 使用的 参数的语义说明。
parameters.inputType String 定义 在 fetchTask: false对话框上显示的控件的类型。 输入值只能是 、、textareanumberdatetimetoggle中的choiceset一个text
默认值: text
parameters.value String 512 个字符 参数的初始值。
parameters.choices 对象的数组。 10 choiceset 的选择选项。 仅当 parameters.inputTypechoiceset 时使用。
parameters.choices.title String 128 个字符 ✔️ 选择的标题。
parameters.choices.value String 512 个字符 ✔️ 选项的值。

composeExtensions.requirementSet

可选 - 对象

名称 类型 最大大小 必需 说明
requirementSet.hostMustSupportFunctionalities 对象的数组。 ✔️ 指定消息扩展正常运行所需的一个或多个运行时功能。 支持的值:dialogUrldialogUrlBot、、dialogAdaptiveCarddialogAdaptiveCardBot。 有关详细信息,请参阅 如何在应用清单中指定运行时要求

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 字符串 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 字符串 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 20 配置可由每个扩展点使用的运行时和操作集。 有关详细信息,请参阅 Office 外接程序中的运行时
ribbons Array 20 定义功能区扩展点。
autoRunEvents Array 10 定义基于事件的激活扩展点。
alternates Array 10 指定与替换现有Microsoft 365 解决方案的关系。 它用于对具有重叠功能的同一发布者隐藏加载项或设置其优先级。
audienceClaimUrl String 2048 个字符 指定扩展的 URL,并用于验证 Exchange 用户标识令牌。 有关详细信息,请参阅 Exchange 标识令牌内部
appDeeplinks Array 请勿使用。 仅供Microsoft内部使用。

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

extensions.requirements

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

名称 类型 最大大小 必需 说明
capabilities Array 100 标识要求集。
capabilities.name String ✔️ 标识要求集的名称。
capabilities.minVersion String 标识要求集的最低版本。
capabilities.maxVersion String 标识要求集的最大版本。
scopes 枚举数组 1 标识加载项可在其中运行的范围,并定义扩展可在其中运行的Microsoft 365 应用程序。 例如, mail (Outlook) 。
支持的值: mail
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 String 2048 个字符 ✔️ 指定包含嵌入 script 标记的网页的 URL,该标记指定要在 基于浏览器的运行时) 加载 (JavaScript 文件的 URL。
code.script String 2048 个字符 指定要在仅限 JavaScript 的运行时中加载的 JavaScript 文件的 URL。
lifetime 字符串枚举 指定运行时的生存期。 具有生存期的 short 运行时不会跨执行保留状态,而具有生存期的 long 运行时则保留状态。 有关详细信息,请参阅 Office 外接程序中的运行时
默认值: short
actions Array 20 指定运行时支持的一组操作。 操作要么运行 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 布尔值 指定最终用户是否可以选择多个项目(例如多个电子邮件),并将操作应用于所有这些项目。
默认值: false
actions.supportsNoItemContext 布尔值 允许在未启用阅读窗格或未选择消息的情况下激活任务窗格加载项。
默认值: false
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 8 指定用户可以使用功能区自定义的 Microsoft 365 应用程序窗口。 数组中的每个项都是字符串数组的成员。
支持的值:mailRead、、mailComposemeetingDetailsOrganizermeetingDetailsAttendeeonlineMeetingDetailsOrganizerlogEventMeetingDetailsAttendeespamReportingOverridedefault
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 20 ✔️ 配置 Microsoft 365 应用程序功能区上的自定义选项卡。
tabs.id 字符串 64 个字符 指定应用中选项卡的 ID。
tabs.builtInTabId 字符串 64 个字符 指定内置 Office 功能区选项卡的 ID。有关可能值的详细信息,请参阅 查找内置 Office 功能区选项卡的 ID。 该属性中唯一可以包含的选项卡对象的其他子属性是 groupscustomMobileRibbonGroups
tabs.label 字符串 64 个字符 指定为选项卡显示的文本。尽管最大长度为 64 个字符,但为了正确对齐功能区中的选项卡,我们建议将标签限制为 16 个字符。
tabs.position Object 配置自定义选项卡相对于功能区上其他选项卡的位置。
tabs.position.builtInTabId 字符串 64 个字符 ✔️ 指定自定义选项卡应放置在其旁边的内置选项卡的 ID。 有关详细信息,请参阅 查找控件和控件组的 ID
tabs.position.align 字符串枚举 ✔️ 定义自定义选项卡相对于指定内置选项卡的对齐方式。
支持的值: afterbefore
tabs.groups Array 10 在非移动设备的功能区选项卡上定义控件组。 对于移动设备,请参阅 tabs.customMobileRibbonGroups 下文。
tabs.groups.id 字符串 64 个字符 指定应用内选项卡组的 ID。 它必须与 Microsoft 365 应用程序和任何其他自定义组中的任何内置组 ID 不同。
tabs.groups.label 字符串 64 个字符 指定为组显示的文本。 尽管最大长度为 64 个字符,但为了正确对齐功能区中的选项卡,我们建议将标签限制为 16 个字符。
tabs.groups.icons Array 3 指定为组显示的图标。
tabs.groups.icons.size 数字 ✔️ 指定图标的大小(以像素为单位),枚举为 1620243240486480
所需的映像大小: 163280
tabs.groups.icons.url String 2048 个字符 ✔️ 指定图标的绝对 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 字符串枚举 ✔️ 定义菜单项的控件类型。
支持的值: button
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 某些 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 ✔️ 定义控件类型。
支持的值: buttonmenu
tabs.groups.controls.builtInControlId 字符串 64 个字符 指定现有 Microsoft 365 控件的 ID。 有关详细信息,请参阅 查找控件和控件组的 ID。 此属性不能与控件对象的任何其他子属性结合使用,因为外接程序无法自定义内置控件。
tabs.groups.controls.label 字符串 64 个字符 ✔️ 指定为控件显示的文本。 尽管最大长度为 64 个字符,但为了正确对齐功能区中的选项卡,我们建议将标签限制为 16 个字符。
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 ✔️ 为控件配置超级提示。 超级提示是一项 UI 功能,当光标悬停在控件上时,它会显示有关控件的简短帮助信息框。 该框可能包含多行文本。
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) 的应用程序和平台组合上。 此 API 在功能区上安装自定义上下文选项卡。
默认值: 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 属性的每个可能值,每个值必须正好有一个。
fixedControls Array 1 在 Outlook 中配置 集成垃圾邮件报告 加载项的按钮。 必须配置 是否 spamReportingOverrideextensions.ribbons.contexts 数组中指定了 。
fixedControls.id 字符串 64 个字符 ✔️ 指定垃圾邮件报告加载项按钮的唯一 ID。
fixedControls.type String ✔️ 定义垃圾邮件报告加载项的控制类型。
支持的值: button
fixedControls.label 字符串 64 个字符 ✔️ 指定垃圾邮件报告加载项按钮上显示的文本。
fixedControls.enabled 布尔值 ✔️ 必须在 对象中 fixedControls 指定此属性。 但是,它不会影响垃圾邮件报告加载项的功能。
默认值: True
fixedControls.icons Array 3 ✔️ 定义垃圾邮件报告加载项按钮的图标。 必须至少有三个子对象,每个子对象的图标大小 16分别为 、 3280 像素。
fixedControls.icons.size 数字 ✔️ 指定图标的大小(以像素为单位),枚举为 16、、20322440486480
所需的映像大小: 163280
fixedControls.icons.url String 2048 个字符 ✔️ 指定图标的绝对 URL。
fixedControls.supertip Object ✔️ 为垃圾邮件报告加载项的按钮配置超级提示。
fixedControls.supertip.title 字符串 64 个字符 ✔️ 指定超级提示的标题文本。
fixedControls.supertip.description String 250 个字符 ✔️ 指定超级提示的说明。
fixedControls.actionId 字符串 64 个字符 ✔️ 指定当用户选择垃圾邮件报告加载项的按钮时所执行的操作的 ID。 必须与 actionId 对象中runtimes操作的 属性匹配runtime.actions.id
spamPreProcessingDialog Object 在 Outlook 中配置 集成垃圾邮件报告 加载项的预处理对话框。
spamPreProcessingDialog.title String 128 个字符 ✔️ 指定垃圾邮件报告加载项的预处理对话框的自定义标题。
spamPreProcessingDialog.description String 250 个字符 ✔️ 指定在垃圾邮件报告加载项的预处理对话框中显示的自定义文本。
spamPreProcessingDialog.spamReportingOptions Object 指定最多五个选项,用户可以从预处理对话框中选择这些选项,以提供报告消息的原因。
spamPreProcessingDialog.spamReportingOptions.title String 128 个字符 ✔️ 指定用于描述预处理对话框中提供的报告选项的自定义文本或标题。
spamPreProcessingDialog.spamReportingOptions.options 字符串数组 5 个选项

每个选项 128 个字符
✔️ 指定带有复选框的自定义选项,用户可以从预处理对话框中选择该复选框,以提供报告消息的原因。 必须至少指定一个选项。 最多可以包含五个选项。
spamPreProcessingDialog.spamFreeTextSectionTitle String 128 个字符 在预处理对话框中添加一个文本框,供用户提供有关他们正在报告的消息的其他信息。 此属性中提供的字符串显示在文本框上方。
spamPreProcessingDialog.spamMoreInfo Object 配置链接以向用户提供信息资源。 在预处理对话框中,链接显示在 中提供的文本下方 spamPreProcessingDialog.description
spamPreProcessingDialog.spamMoreInfo.text String 128 个字符 ✔️ 指定 URL 的链接文本,该 URL 将用户定向到预处理对话框中的信息资源。
spamPreProcessingDialog.spamMoreInfo.url String 2048 个字符 ✔️ 指定包含信息资源的网站的 HTTPS URL。

若要使用 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 指定一个 COM 加载项,该外接程序必须用于代替适用于 Windows 的 Microsoft 365 Web 外接程序。
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图标。 如果要在 Mac 版 Office 中安装 Office 加载项、永久 Office 许可证和 Microsoft 365 订阅版本的 Office(早于 2304 (内部版本 16320.00000) ),则需要此属性。
alternateIcons.icon Object ✔️ 指定用于表示外接程序的图像文件的属性。
alternateIcons.icon.size 数字枚举 ✔️ 指定图标的大小(以像素为单位),枚举为 1620243240486480
所需的映像大小: 163280
alternateIcons.icon.url String 2048 个字符 ✔️ 指定用于表示外接程序的图像文件的完整绝对 URL。 图标图像必须为 64 x 64 像素,并使用以下文件格式之一:GIF、JPG、PNG、EXIF、BMP、TIFF。
alternateIcons.highResolutionIcon Object ✔️ 指定用于在高 DPI 屏幕上表示加载项的图像文件的属性。
alternateIcons.highResolutionIcon.size 数字枚举 ✔️ 指定图标的大小(以像素为单位),枚举为 1620243240486480
所需的映像大小: 163280
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。

另请参阅