App-Manifest
Das App-Manifest (zuvor als Teams-App-Manifest bezeichnet) beschreibt, wie Ihre App in das Microsoft Teams-Produkt integriert wird. Ihr App-Manifest muss dem Schema entsprechen, das auf https://developer.microsoft.com/json-schemas/teams/v1.19/MicrosoftTeams.schema.jsongehostet wird. Frühere Versionen 1.0, 1.1,...,1.17 und die aktuelle Version 1.19 werden jeweils unterstützt (mit "v1.x" in der URL). Version 1.18 ist nicht verfügbar. Weitere Informationen zu den Änderungen, die in den einzelnen Versionen vorgenommen wurden, finden Sie im Änderungsprotokoll des App-Manifests und für frühere Versionen unter App-Manifestversionen.
In der folgenden Tabelle sind die TeamsJS-Version und die Versionen der App-Manifeste für die verschiedenen App-Szenarien aufgeführt:
App-Typ | TeamsJS-Version | App-Manifestversion | Nächste Schritte |
---|---|---|---|
Teams-Apps, die in Outlook und Microsoft 365 erweitert wurden | TeamsJS v.2.19.0 oder höher | v.1.13 oder höher | Erweitern von Teams-Apps auf Microsoft 365 oder Erstellen einer neuen Microsoft 365-App |
Vorhandene reine Teams-Apps | Nach Möglichkeit auf TeamsJS v.2.19.0 aktualisieren (v.1.12 wird weiterhin unterstützt*) | 1.12 | Grundlegendes zur Abwärtskompatibilität von TeamsJS und Update auf TeamsJS v.2.0 |
Neue reine Teams-Apps | TeamsJS v.2.19.0 oder höher | 1.12 | Erstellen einer neuen Teams-App mit Teams Toolkit |
* Verwenden Sie nach Möglichkeit die neueste Version von TeamsJS (v.2.19.0 oder höher), um die neuesten Verbesserungen und die Unterstützung neuer Features zu nutzen, einschließlich Nur-Teams-Apps. TeamsJS v.1.12 wird weiterhin unterstützt, es werden jedoch keine neuen Features oder Verbesserungen hinzugefügt. Die Schemas 1.12 und 1.13 sind ansonsten identisch. Weitere Informationen finden Sie unter TeamsJS-Bibliothek.
Hinweis
Wenn Ihre Teams-App die App-Manifestversion 1.13 oder höher verwendet, stellen Sie sicher, dass Ihre App die Kriterien zum Erweitern Ihrer App für die Ausführung in Microsoft 365 oder Outlook erfüllt.
Es folgt das Beispiel für das App-Manifestschema:
Beispiel-App-Manifest
{
"$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
}
]
}
}
Das Schema definiert die folgenden Eigenschaften:
$schema
Optional, aber empfohlen– Zeichenfolge
Die https:// URL, die auf das JSON-Schema für das App-Manifest verweist.
manifestVersion
Erforderlich – Zeichenfolge
Die Version des App-Manifestschemas, das dieses Manifest verwendet. Verwenden Sie , um die Unterstützung von Teams-Apps in Outlook und Microsoft 365-Apps zu aktivieren. Verwenden Sie 1.13
1.12
(oder früher) für reine Teams-Apps.
Version
Erforderlich – Zeichenfolge
Die Version einer bestimmten App. Wenn Sie etwas in Ihrem App-Manifest aktualisieren, muss auch die Version erhöht werden. Auf diese Weise überschreibt das neue App-Manifest bei der Installation das vorhandene Manifest, und der Benutzer erhält die neue Funktionalität. Wenn diese App an den Microsoft Teams Store übermittelt wurde, muss das neue App-Manifest erneut übermittelt und erneut überprüft werden. Die App-Benutzer erhalten das neue aktualisierte App-Manifest automatisch innerhalb weniger Stunden nach der Genehmigung des App-Manifests.
Wenn sich die App-Berechtigungsanforderungen ändern, werden die Benutzer aufgefordert, ein Upgrade durchzuführen und der App erneut die Berechtigungen zu erteilen.
Diese Versionszeichenfolge muss dem SemVer-Standard entsprechen (MAJOR.MINOR.PATCH).
Hinweis
Wenn Ihre App ein Office-Add-In enthält, ist jedes Segment der Versionszeichenfolge auf maximal fünf Ziffern beschränkt. Die Zeichenfolgenerweiterungen der Semver-Vorabversion und der Metadatenversion des Semver-Standards werden nicht unterstützt.
ID
Erforderlich : Microsoft-App-ID
Die ID ist ein eindeutiger, von Microsoft generierter Bezeichner für die App. Das Format der ID ist GUID. Sie verfügen über eine ID, wenn Ihr Bot über das Microsoft Bot Framework registriert ist. Sie verfügen über eine ID, wenn sich die Web-App Ihrer Registerkarte bereits bei Microsoft anmeldet. Sie müssen die ID hier eingeben. Andernfalls müssen Sie eine neue ID im Microsoft-Anwendungsregistrierungsportal generieren. Verwenden Sie die gleiche ID, wenn Sie einen Bot hinzufügen.
Die in Teams Admin Center gespeicherte ID ist die externe App-ID und in den Ablaufverfolgungen als ExternalID sichtbar.
Hinweis
Wenn Sie ein Update an Ihre vorhandene App in AppSource übermitteln, darf die ID in Ihrem App-Manifest nicht geändert werden.
developer
Erforderlich – Objekt
Gibt Informationen zu Ihrem Unternehmen an. Für Apps, die an den Teams Store übermittelt werden, müssen diese Werte mit den Informationen in Ihrem Teams Store-Eintrag übereinstimmen. Weitere Informationen finden Sie in den Teams Store-Veröffentlichungsrichtlinien. Der Name des Entwicklers trägt dazu bei, die Auffindbarkeit Ihrer App im Teams Store zu verbessern.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
name |
Zeichenfolge | 32 Zeichen | ✔️ | Der Anzeigename für den Entwickler. |
websiteUrl |
Zeichenfolge | 2048 Zeichen | ✔️ | Die https://-URL zur Website des Entwicklers. Dieser Link muss Benutzer zur Landing Page Ihres Unternehmens oder des produktspezifischen Angebots führen. |
privacyUrl |
Zeichenfolge | 2048 Zeichen | ✔️ | Die https://-URL zur Datenschutzerklärung des Entwicklers. |
termsOfUseUrl |
Zeichenfolge | 2048 Zeichen | ✔️ | Die https://-URL zu den Nutzungsbedingungen des Entwicklers. |
mpnId |
String | 10 Zeichen | Wahlfrei Die Microsoft Cloud Partner Program-ID (früher als Microsoft Partner Network (MPN)-ID bezeichnet), die den Partner identifiziert, organization die App erstellen. |
name
Erforderlich – Objekt
Der Name Ihrer App-Lösung, der Benutzern in der Microsoft Teams-Umgebung angezeigt wird. Für Apps, die an AppSource übermittelt werden, müssen diese Werte mit den Informationen in Ihrem AppSource-Eintrag übereinstimmen. Die Werte von short
und full
müssen unterschiedlich sein. Der App-Name trägt dazu bei, die Auffindbarkeit Ihrer App im Teams Store zu verbessern.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
short |
Zeichenfolge | 30 Zeichen | ✔️ | Der Kurzanzeigename für die App. Verwenden Sie short die -Eigenschaft, wenn der Speicherplatz begrenzt ist, z. B. den App-Header. |
full |
Zeichenfolge | 100 Zeichen | ✔️ | Der vollständige Name der App; wird verwendet, wenn der vollständige App-Name 30 Zeichen überschreitet. Verwenden Sie full die -Eigenschaft, wenn mehr Platz vorhanden ist, z. B. im App-Katalog oder auf der Seite mit den App-Details. |
Hinweis
- Im App-Manifest v1.17 oder höher ist die
full
Eigenschaft erforderlich, und für App-Manifest v1.16 oder früher ist sie nicht erforderlich. - Die
short
-Eigenschaft wird auf allen Ui-Oberflächen verwendet.
description
Erforderlich – Objekt
Beschreibt Ihre App für Benutzer. Für Apps, die an AppSource übermittelt werden, müssen diese Werte mit den Informationen in Ihrem AppSource-Eintrag übereinstimmen. Die App-Beschreibung trägt dazu bei, die Auffindbarkeit Ihrer App im Teams Store zu verbessern.
Stellen Sie sicher, dass Ihre Beschreibung Ihre Lösung beschreibt und potenziellen Kunden hilft zu verstehen, worin ihre Funktion besteht. Sie müssen in der vollständigen Beschreibung angeben, ob ein externes Konto für die Verwendung der App erforderlich ist. Die Werte von short
und full
müssen unterschiedlich sein. Ihre kurze Beschreibung kann nicht innerhalb der langen Beschreibung wiederholt werden und darf keinen anderen App-Namen enthalten.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
short |
String | 80 Zeichen | ✔️ | Eine kurze Beschreibung der App; wird verwendet, wenn der Platz begrenzt ist. |
full |
String | 4.000 Zeichen | ✔️ | Die vollständige Beschreibung Ihrer App. |
localizationInfo
Optional – Objekt
Ermöglicht die Angabe einer Standardsprache und Zeiger auf zusätzliche Sprachdateien. Siehe Lokalisierung.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
defaultLanguageTag |
Zeichenfolge | ✔️ | Das Sprachtag für die Zeichenfolgen in dieser App-Manifestdatei der obersten Ebene. Der Standardwert ist en-us . |
|
defaultLanguageFile |
Zeichenfolge | 2048 Zeichen | Ein relativer Dateipfad zur .json Datei, die die Zeichenfolgen enthält. Wenn nicht angegeben, werden Zeichenfolgen direkt aus der App-Manifestdatei übernommen. Für Copilot-Agents, die mehrere Sprachen unterstützen, ist eine Standardsprachdatei erforderlich. |
localizationInfo.additionalLanguages
Ein Array von -Objekten, die jeweils die folgenden Eigenschaften aufweisen, um zusätzliche Sprachübersetzungen anzugeben.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
languageTag |
Zeichenfolge | ✔️ | Das Sprachtag der Zeichenfolgen in der bereitgestellten Datei. Beispiel: es |
|
file |
Zeichenfolge | 2048 Zeichen | ✔️ | Ein relativer Dateipfad zur .json Datei, die die übersetzten Zeichenfolgen enthält. |
Symbole
Erforderlich – Objekt
Symbole, die in der Microsoft Teams-App verwendet werden. Die Symboldateien müssen als Teil des Uploadpakets enthalten sein. Weitere Informationen finden Sie unter Symbole.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
outline |
Zeichenfolge | 32 x 32 Pixel | ✔️ | Ein relativer Dateipfad zu einem transparenten, 32 x 32 Pixel großen PNG-Kontursymbol. Die Rahmenfarbe muss weiß sein. |
color |
Zeichenfolge | 192 x 192 Pixel | ✔️ | Ein relativer Dateipfad zu einem farbigen, 192 x 192 Pixel großen PNG-Symbol. |
accentColor
Erforderlich : HTML-Hexady-Farbcode
Eine Farbe, die und als Hintergrund für Ihre Farbsymbole verwendet werden soll.
Bei dem Wert muss es sich um einen gültigen HTML-Farbcode handeln, der mit "#" beginnt, z. B. #4464ee
. Weitere Informationen finden Sie unter accentColor.
copilotAgents
Optional – Objekt
Definiert einen oder mehrere Agents, die Microsoft 365 Copilot. Deklarative Agents sind Anpassungen von Microsoft 365 Copilot, die auf denselben Orchestrator- und Basismodellen ausgeführt werden.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
declarativeAgents |
Array mit Objekten | 1 | ✔️ | Array von Objekten, die jeweils einen deklarativen Agent definieren. |
declarativeAgents
Stellt eine Anpassung von Microsoft 365 Copilot dar, wie durch die Manifestdatei definiert.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
id |
Zeichenfolge | ✔️ | Eindeutiger Bezeichner für den Agent. Wenn Sie Microsoft Copilot Studio zum Erstellen von Agents verwenden, wird dies automatisch generiert. Andernfalls weisen Sie den Wert manuell gemäß Ihren eigenen Konventionen oder Präferenzen zu. | |
file |
Zeichenfolge | 2048 Zeichen | ✔️ | Relativer Dateipfad innerhalb des App-Pakets zur Manifestdatei des deklarativen Agents . |
configurableTabs
Optional – Array
Wird verwendet, wenn Ihre App-Erfahrung über eine Teamkanalregisterkarte verfügt, die eine zusätzliche Konfiguration erfordert, bevor sie hinzugefügt wird. Konfigurierbare Registerkarten werden nur in den team
- und groupChat
-Bereichen unterstützt, und Sie können dieselben Registerkarten mehrmals konfigurieren. Sie können sie jedoch nur einmal im App-Manifest definieren.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
configurationUrl |
Zeichenfolge | 2048 Zeichen | ✔️ | Die https://-URL, die beim Konfigurieren der Registerkarte verwendet werden soll. |
scopes |
Array von Enumerationen | 2 | ✔️ | Die konfigurierbaren Registerkarten unterstützen nur die team Bereiche und groupChat . |
canUpdateConfiguration |
Boolesch | Der Wert, der angibt, ob eine Instanz der Registerkartenkonfiguration nach der Erstellung vom Benutzer aktualisiert werden kann. Standardwert: true |
||
meetingSurfaces |
Array von Enumerationen | 2 | Die Gruppe von meetingSurfaceItem -Bereichen, in denen eine Registerkarte unterstützt wird. Standardwerte: sidePanel , stage |
|
context |
Array von Enumerationen | 8 | Die Gruppe von contextItem -Bereichen, in denen eine Registerkarte unterstützt wird. Akzeptierter Wert: [personalTab, channelTab, privateChatTab, meetingChatTab, meetingDetailsTab, meetingSidePanel, meetingStage]. |
|
sharePointPreviewImage |
Zeichenfolge | 2048 Zeichen | Ein relativer Dateipfad zu einem Registerkartenvorschaubild zur Verwendung in SharePoint. Größe: 1024 x 768. | |
supportedSharePointHosts |
Array von Enumerationen | 2 | Definiert, wie Ihre Registerkarte in SharePoint zur Verfügung gestellt wird. Optionen sind sharePointFullPage und sharePointWebPart . |
staticTabs
Optional – Array
Definiert einen Satz von Registerkarten, die standardmäßig angeheftet werden können, ohne dass der Benutzer sie manuell hinzufügt. Im personal
-Bereich deklarierte statische Registerkarten werden immer an die persönliche Benutzeroberfläche der App angeheftet.
Dieses Element ist ein Array (maximal 16 Elemente), wobei alle Elemente vom Typ object
sind. Dieser Block ist nur für Lösungen erforderlich, die eine Lösung mit statischen Registerkarten bereitstellen.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
entityId |
String | 64 Zeichen | ✔️ | Ein eindeutiger Bezeichner für die Entität, die auf der Registerkarte angezeigt wird. |
name |
Zeichenfolge | 128 Zeichen | Der Anzeigename der Registerkarte. | |
contentUrl |
Zeichenfolge | 2048 Zeichen | Die https://-URL, die auf die Entitäts-Benutzeroberfläche verweist, die im Microsoft Teams-Canvas angezeigt werden soll. | |
contentBotId |
Zeichenfolge | 128 Zeichen | Die für den Bot im Bot Framework-Portal angegebene Microsoft-App-ID. | |
websiteUrl |
Zeichenfolge | 2048 Zeichen | Die https://-URL, auf die verwiesen wird, wenn sich ein Benutzer für die Anzeige in einem Browser entscheidet. | |
searchUrl |
Zeichenfolge | 2048 Zeichen | Die https://-URL, auf die für die Suchabfragen eines Benutzers verwiesen wird. | |
scopes |
Array von Enumerationen | 3 | ✔️ | Gibt an, ob die Registerkarte eine Benutzeroberfläche im Kontext eines Kanals in einem Team oder eine Erfahrung für einen einzelnen Benutzer oder Gruppenchat bietet. Die statischen Registerkarten unterstützen personal nur den Bereich. |
context |
Array von Enumerationen | 8 | Der Satz von contextItem Kontexten, in denen eine Registerkarte unterstützt wird.
Akzeptierte Werte: personalTab , channelTab , privateChatTab , meetingChatTab , meetingDetailsTab , meetingStage , meetingSidepanel , teamLevelApp .
Standardwerte: personalTab , channelTab , privateChatTab , meetingChatTab , meetingDetailsTab . |
Hinweis
- Die
groupChat
Bereiche undteam
werden nur in der öffentlichen Entwicklervorschau unterstützt. - Der
teamLevelApp
Kontext ist nur für Education-Mandanten dediziert. - Das
searchUrl
Feature ist für Drittanbieterentwickler nicht verfügbar. - Wenn Ihre Registerkarten kontextabhängige Informationen zum Anzeigen relevanter Inhalte oder zum Initiieren eines Authentifizierungsvorgangs benötigen, finden Sie entsprechende Informationen unter Abrufen von Kontext für Ihre Microsoft Teams-Registerkarte.
Bots
Optional – Array
Definiert eine Bot-Lösung zusammen mit optionalen Informationen wie Standardbefehlseigenschaften.
Das Element ist ein Array (maximal nur ein Element – nur ein Bot ist pro App zulässig) mit allen Elementen des Typs object
. Dieser Block ist nur für Lösungen erforderlich, die einen Bot umfassen.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
botId |
Zeichenfolge | ✔️ | Die eindeutige Microsoft-App-ID für den Bot, wie bei Bot Framework registriert. Die ID kann mit der Gesamt-App-IDübereinstimmen. | |
scopes |
Array von Enumerationen | 3 | ✔️ | Gibt an, ob der Bot eine Umgebung im Kontext eines Kanals in einem team oder Gruppenchat (groupChat ) ist, oder aber eine Umgebung einzig für einen bestimmten Benutzer (personal ). Diese Optionen sind nicht exklusiv. |
needsChannelSelector |
Boolesch | Beschreibt, ob der Bot einen Benutzerhinweis verwendet, um den Bot zu einem bestimmten Kanal hinzuzufügen. Standardwert: false |
||
isNotificationOnly |
Boolesch | Gibt an, ob ein Bot ein unidirektionaler Bot ausschließlich für Benachrichtigungen ist (im Gegensatz zu einem dialogorientierten Bot). Standardwert: false |
||
supportsFiles |
Boolesch | Gibt an, ob der Bot die Möglichkeit zum Hochladen/Herunterladen von Dateien in persönliche Chats unterstützt. Standardwert: false |
||
supportsCalling |
Boolesch | Ein Wert, der angibt, wo ein Bot Audioanrufe unterstützt.
WICHTIG: Diese Eigenschaft ist experimentell. Experimentelle Eigenschaften sind möglicherweise unvollständig und werden möglicherweise geändert, bevor sie vollständig verfügbar sind. Die Eigenschaft wird nur zu Test- und Erforschungszwecken bereitgestellt und darf nicht in Produktionsanwendungen verwendet werden. Standardwert: false |
||
supportsVideo |
Boolescher Wert | Ein Wert, der angibt, wo ein Bot Videoanrufe unterstützt.
WICHTIG: Diese Eigenschaft ist experimentell. Experimentelle Eigenschaften sind möglicherweise unvollständig und werden möglicherweise geändert, bevor sie vollständig verfügbar sind. Die Eigenschaft wird nur zu Test- und Erforschungszwecken bereitgestellt und darf nicht in Produktionsanwendungen verwendet werden. Standardwert: false |
bots.configuration
Optional – Objekt
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
team.fetchTask |
Boolescher Wert | ✔️ | Ein boolescher Wert, der angibt, ob der Dialog (in TeamsJS v1.x als Aufgabenmodul bezeichnet) dynamisch abgerufen werden soll. Standardwert: false |
|
team.taskInfo |
Objekt | ✔️ | Das Dialogfeld, das bei Verwendung eines Bots vorab geladen werden soll | |
team.taskInfo.title |
String | 64 Zeichen | ✔️ | Titel des ersten Dialogfelds. |
team.taskInfo.width |
Zeichenfolge | 16 Zeichen | Die Dialogbreite ist entweder eine Zahl in Pixel oder ein Standardlayout wie large , medium oder small . |
|
team.taskInfo.height |
String | 16 Zeichen | Die Höhe des Dialogfelds ist entweder eine Zahl in Pixel oder ein Standardlayout wie large , medium oder small . |
|
team.taskInfo.url |
Zeichenfolge | 2048 Zeichen | Anfängliche WebView-URL. | |
groupChat.fetchTask |
Boolesch | ✔️ | Ein boolescher Wert, der angibt, ob der Dialog dynamisch abgerufen werden soll. Standardwert: false |
|
groupChat.taskInfo |
Objekt | Dialogfeld, das gestartet werden soll, wenn der Abruftask auf false festgelegt ist. Standardwert: false |
||
groupChat.taskInfo.title |
String | 64 Zeichen | ✔️ | Titel des ersten Dialogfelds. |
groupChat.taskInfo.width |
Zeichenfolge | 16 | Die Dialogbreite ist entweder eine Zahl in Pixel oder ein Standardlayout wie large , medium oder small . |
|
groupChat.taskInfo.height |
String | 16 | Die Höhe des Dialogfelds ist entweder eine Zahl in Pixel oder ein Standardlayout wie large , medium oder small . |
|
groupChat.taskInfo.url |
Zeichenfolge | 2048 Zeichen | Anfängliche WebView-URL. |
bots.commandLists
Optional – Array
Eine Liste der Befehle, die Ihr Bot Benutzern empfehlen kann. Das Objekt ist ein Array (maximal drei Elemente) mit allen Elementen des Typs object
. Sie müssen eine separate Befehlsliste für jeden Bereich definieren, den Ihr Bot unterstützt. Weitere Informationen finden Sie unter Bot-Menüs.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
scopes |
Array von Enumerationen | 3 | ✔️ | Gibt den Bereich an, für den die Befehlsliste gültig ist. Mögliche Optionen sind team , personal und groupChat . |
commands |
Array mit Objekten | 10 | ✔️ | Ein Array von Befehlen, die der Bot unterstützt. |
Hinweis
Der mobile Teams-Client unterstützt die Bot-App nicht, wenn die commandLists
Eigenschaft keinen Wert enthält.
bots.commandLists.commands
Erforderlich – Array
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
title |
String | 32 | ✔️ | Der Name des Bot-Befehls. |
description |
Zeichenfolge | 128 Zeichen | ✔️ | Eine einfache Textbeschreibung oder ein Beispiel für die Befehlssyntax und zugehörige Argumente. |
connectors
Optional – Array
Der connectors
-Block definiert einen Connector Karte für Microsoft 365-Gruppen für die App.
Das Objekt ist ein Array (maximal ein Element), wobei alle Elemente vom Typ object
sind. Dieser Block ist nur für Lösungen erforderlich, die einen Connector bereitstellen.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
configurationUrl |
Zeichenfolge | 2048 Zeichen | ✔️ | Die https:// URL, die beim Konfigurieren des Connectors mithilfe der Inlinekonfigurationsoberfläche verwendet werden soll. |
scopes |
Array von Enumerationen | 1 | ✔️ | Gibt an, ob der Connector eine Umgebung im Kontext eines Kanals in einem team oder aber eine Umgebung einzig für einen bestimmten Benutzer (personal ) bietet. Der team Bereich wird nur unterstützt. |
connectorId |
String | 64 Zeichen | ✔️ | Ein eindeutiger Bezeichner für den Connector, der seiner ID im Connectors Developer Dashboard entspricht. |
composeExtensions
Optional – Array
Definiert eine Nachrichtenerweiterung für die App.
Hinweis
Der Name des Features wurde im November 2017 von "Compose-Erweiterung" in "Nachrichtenerweiterung" geändert, aber der Name des App-Manifests bleibt unverändert, sodass vorhandene Erweiterungen weiterhin funktionieren.
Das Element ist ein Array (maximal ein Element), wobei alle Elemente vom Typ object
sind. Dieser Block ist nur für Lösungen erforderlich, die eine Nachrichtenerweiterung bereitstellen.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
botId |
Zeichenfolge | Die eindeutige Microsoft-App-ID für den Bot, welcher der Nachrichtenerweiterung zugeordnet ist, wie beim Bot Framework registriert. Die ID kann mit der Gesamt-App-ID übereinstimmen. | ||
composeExtensionType |
Zeichenfolge | ✔️ | Typ der Compose-Erweiterung. Enumerationswerte sind botBased und apiBased . |
|
authorization |
Objekt | 2 | Autorisierungsbezogene Informationen für die API-basierte Nachrichtenerweiterung. | |
authorization.authType |
Zeichenfolge | Enumeration möglicher Autorisierungstypen. Unterstützte Werte sind none , apiSecretServiceAuth und microsoftEntra . |
||
authorization.microsoftEntraConfiguration |
Objekt | Objekterfassungsdetails, die für den MicrosoftEntra-Authentifizierungsfluss erforderlich sind. Gilt nur, wenn der Authentifizierungstyp ist microsoftEntra . |
||
authorization.microsoftEntraConfiguration.supportsSingleSignOn |
Boolesch | Ein Wert, der angibt, ob einmaliges Anmelden für die App konfiguriert ist. | ||
authorization.apiSecretServiceAuthConfiguration |
Objekt | Objekterfassungsdetails, die für die Dienstauthentifizierung erforderlich sind. Gilt nur, wenn der Authentifizierungstyp ist apiSecretServiceAuth . |
||
authorization.apiSecretServiceAuthConfiguration.apiSecretRegistrationId |
Zeichenfolge | 128 Zeichen | Die Registrierungs-ID wird zurückgegeben, wenn der Entwickler den API-Schlüssel über das Entwicklerportal übermittelt. | |
apiSpecificationFile |
Zeichenfolge | 2048 Zeichen | Ein relativer Dateipfad zur API-Spezifikationsdatei im Manifestpaket. | |
canUpdateConfiguration |
Boolesch | Ein Wert, der angibt, ob die Konfiguration einer Nachrichtenerweiterung vom Benutzer aktualisiert werden kann. Standardwert: false |
||
commands |
Array mit Objekten | 10 | ✔️ | Array von Befehlen, die von der Nachrichtenerweiterung unterstützt werden. |
messageHandlers |
Array mit Objekten | 5 | Eine Liste von Handlern, mit denen Apps aufgerufen werden können, wenn bestimmte Bedingungen erfüllt sind. | |
messageHandlers.type |
Zeichenfolge | Der Typ des Nachrichtenhandlers. Muss link sein. |
||
messageHandlers.value.domains |
Array aus Zeichenfolgen | 2048 Zeichen | Array von Domänen, für die sich der Link-Nachrichtenhandler registrieren kann. | |
messageHandlers.value.supportsAnonymizedPayloads |
Boolesch | Ein boolescher Wert, der angibt, ob der Linknachrichtenhandler der App anonymen Aufrufflow unterstützt. Standardwert: false |
composeExtensions.commands
Ihre Nachrichtenerweiterung muss mindestens einen Befehl deklarieren (maximal 10 Befehle insgesamt). Jeder Befehl wird in Microsoft Teams als potenzielle Interaktion vom Einstiegspunkt in der Benutzeroberfläche angezeigt.
Jedes Befehlselement ist ein Objekt mit folgender Struktur:
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
id |
String | 64 Zeichen | ✔️ | Die ID für den Befehl. |
type |
String | Der Befehlstyp. Entweder query oder action . Standardwert: query |
||
samplePrompts |
Array | 5 | Eigenschaft, die von Microsoft 365 Copilot verwendet wird, um vom Plug-In unterstützte Eingabeaufforderungen für den Benutzer anzuzeigen. | |
samplePrompts.text |
Zeichenfolge | 128 Zeichen | ✔️ | Inhalt der Beispielaufforderung. |
apiResponseRenderingTemplateFile |
Zeichenfolge | 2048 Zeichen | Ein relativer Dateipfad für die API-Antwortrendering-Vorlagendatei , die zum Formatieren der JSON-Antwortantwort von der API des Entwicklers in die Antwort adaptiver Karten verwendet wird. | |
context |
Array aus Zeichenfolgen | 3 | Definiert, wo die Nachrichtenerweiterung aufgerufen werden kann. Jede Kombination von compose , commandBox , message . Standardwerte: compose, commandBox |
|
title |
Zeichenfolge | 32 Zeichen | ✔️ | Der benutzerfreundliche Name des Befehls. |
description |
Zeichenfolge | 128 Zeichen | Die Beschreibung, die Benutzern angezeigt wird, um den Zweck dieses Befehls anzugeben. | |
semanticDescription |
Zeichenfolge | 5000 Zeichen | Semantische Beschreibung des Befehls für die Verwendung durch Microsoft 365 Copilot mithilfe von LLMs (Large Language Models). | |
initialRun |
Boolesch | Ein boolescher Wert gibt an, ob der Befehl anfänglich ohne Parameter ausgeführt wird. Standardwert: false |
||
fetchTask |
Boolesch | Ein boolescher Wert, der angibt, ob der Dialog (in TeamsJS v1.x als Aufgabenmodul bezeichnet) dynamisch abgerufen werden muss. Standardwert: false |
||
taskInfo |
Objekt | Geben Sie bei Verwendung eines Nachrichtenerweiterungsbefehls das Dialogfeld an, das vorab laden soll. | ||
taskInfo.title |
String | 64 Zeichen | Titel des ersten Dialogfelds. | |
taskInfo.width |
Zeichenfolge | Dialogbreite: Entweder eine Zahl in Pixel oder Standardlayoutwerte wie large , medium oder small . |
||
taskInfo.height |
String | Dialoghöhe: Entweder eine Zahl in Pixel oder Standardlayoutwerte wie large , medium oder small . |
||
taskInfo.url |
Zeichenfolge | Anfängliche WebView-URL. | ||
parameters |
Array mit Objekten | 5 | Die Liste der Parameter, die der Befehl verwendet. | |
parameters.name |
String | 64 Zeichen | ✔️ | Der Name des Parameters, wie er im Client angezeigt wird. Der Parametername ist in der Benutzeranforderung enthalten. |
parameters.title |
Zeichenfolge | 32 Zeichen | ✔️ | Benutzerfreundlicher Titel für den Parameter. |
parameters.description |
Zeichenfolge | 128 Zeichen | Benutzerfreundliche Zeichenfolge, die den Zweck dieses Parameters beschreibt. | |
parameters.semanticDescription |
Zeichenfolge | 2000 Zeichen | Semantische Beschreibung des Parameters für die Verwendung durch Microsoft 365 Copilot mithilfe von LLMs (Large Language Models). | |
parameters.value |
Zeichenfolge | 512 Zeichen | Anfangswert für den Parameter. Der Wert wird nicht unterstützt. | |
parameters.inputType |
Zeichenfolge | Definiert den Typ des Steuerelements, das in einem Dialogfeld für fetchTask: false angezeigt wird. Der Eingabewert kann nur einer von text , , textarea , date number , , time , toggle seinchoiceset . Standardwert: text |
||
parameters.choices |
Array mit Objekten | 10 Elemente | Die Auswahloptionen für choiceset . Wird nur verwendet, wenn parameters.inputType choiceset ist. |
|
parameters.choices.title |
Zeichenfolge | 128 Zeichen | ✔️ | Titel der Auswahl. |
parameters.choices.value |
Zeichenfolge | 512 Zeichen | ✔️ | Value of the choice. |
Berechtigungen
Optional : Array von Zeichenfolgen
Ein Array von string
, das angibt, welche Berechtigungen die App anfordert, wodurch Endbenutzer wissen, wie die Erweiterung funktioniert. Die folgenden Optionen sind nicht exklusiv:
-
identity
Erfordert Benutzeridentitätsinformationen. -
messageTeamMembers
Erfordert die Berechtigung zum Senden von direkten Nachrichten an Teammitglieder.
Wenn Sie diese Berechtigungen während der App-Aktualisierung ändern, müssen Ihre Benutzer den Zustimmungsprozess wiederholen, nachdem sie die aktualisierte App gestartet haben. Weitere Informationen finden Sie unter Aktualisieren Ihrer App.
Hinweis
Berechtigungen sind jetzt veraltet.
devicePermissions
Optional : Array von Zeichenfolgen
Stellt die systemeigenen Features auf dem Gerät eines Benutzers bereit, für die Ihre App Zugriff anfordert. Mögliche Optionen sind:
geolocation
media
notifications
midi
openExternal
validDomains
Optional (außer Erforderlich , falls angegeben) – Array von Zeichenfolgen
Eine Liste gültiger Domänen für Websites, die von der App im Microsoft Teams-Client geladen werden sollen. Domäneneinträge können Platzhalter enthalten, z. B. *.example.com
. Die gültige Domäne entspricht genau einem Segment der Domäne. Wenn sie a.b.example.com
entsprechen muss, verwenden Sie *.*.example.com
. Wenn Ihre Registerkartenkonfiguration oder Inhalts-UI zu einer anderen Domäne als jener der Registerkartenkonfiguration führt, muss diese Domäne hier angegeben werden.
Schließen Sie nicht die Domänen von Identitätsanbietern ein, die in Ihrer App unterstützt werden sollen. Wenn Sie sich beispielsweise mit einer Google-ID authentifizieren möchten, müssen Sie zu accounts.google.com umleiten. Sie dürfen jedoch nicht accounts.google.com in validDomains[]
einschließen.
Microsoft Teams-Apps, die ihre eigenen SharePoint-URLs benötigen, um ordnungsgemäß zu funktionieren, enthalten "{teamsitedomain}" in ihrer Liste zulässiger Domänen.
Wichtig
Fügen Sie keine Domänen hinzu, die sich außerhalb Ihrer Kontrolle befinden, weder direkt noch über Wildcards (). Beispielsweise ist .yoursite.com gültig, aber *.onmicrosoft.com ist ungültig, da es nicht unter Ihrer Kontrolle steht.
Bei Verwendung von Wildcards gelten die folgenden Regeln:
- Wenn ein Unterdomänensegment einen Platzhalter enthält, muss es das einzige Zeichen im Segment sein.
- Jedes Segment, das einem Wildcardsegment vorangeht, muss ebenfalls ein Wildcardsegment sein.
Beispielsweise ist *.*.domain.com gültig, aber foo.*.myteam.domain.com ist ungültig.
Das Objekt ist ein Array, wobei alle Elemente vom Typ string
sind. Das maximale Element des Objekts ist 16 und die maximale Länge beträgt 2048 Zeichen.
webApplicationInfo
Hinweis
Die webApplicationInfo
-Eigenschaft bezieht sich auf eine einzelne Domäne und wird für mehrere Domänen nicht unterstützt. Wenn Sie also zwei Apps in unterschiedlichen Domänen gehostet haben, müssen Sie separate App-Manifeste für jede App erstellen.
Optional – Objekt
Geben Sie Ihre Microsoft Entra App-ID und Microsoft Graph-Informationen an, damit sich Benutzer nahtlos bei Ihrer App anmelden können. Wenn Ihre App in Microsoft Entra ID registriert ist, müssen Sie die App-ID angeben. Administratoren können im Microsoft Teams Admin Center Berechtigungen einfach überprüfen und ihre Zustimmung erteilen.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
id |
String | ✔️ | Microsoft Entra Anwendungs-ID der App. Diese ID muss eine GUID sein. | |
resource |
Zeichenfolge | 2048 Zeichen | Ressourcen-URL der App zum Abrufen des Authentifizierungstokens für Einmaliges Anmelden.
ANMERKUNG: Wenn Sie SSO nicht verwenden, stellen Sie sicher, dass Sie einen Dummyzeichenfolgenwert in dieses Feld in Ihr App-Manifest eingeben, https://example um beispielsweise eine Fehlerantwort zu vermeiden. Der Dummy-URL-Zeichenfolgenwert darf keine Domänen oder URLs enthalten, die sich nicht direkt oder über Platzhalter befinden. Beispielsweise yourapp.onmicrosoft.com ist gültig, aber *.onmicrosoft.com nicht gültig. Die Domänen der obersten Ebene sind verboten, *.com z. B. , *.org . |
graphConnector
Optional – Objekt
Geben Sie die Graph-Connectorkonfiguration der App an. Wenn dies vorhanden ist, muss auch webApplicationInfo.id angegeben werden.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
notificationUrl |
Zeichenfolge | 2048 Zeichen | ✔️ | Die URL, an die Graph-Connector-Benachrichtigungen für die Anwendung gesendet werden sollen. |
showLoadingIndicator
Optional – Boolescher Wert
Gibt an, ob die Ladefortschritt angezeigt werden soll, während eine App oder Registerkarte geladen wird. Der Standardwert ist false.
Hinweis
- Wenn Sie in Ihrem App-Manifest die Option true auswählen
showLoadingIndicator
, ändern Sie die Inhaltsseiten Ihrer Registerkarten und Dialogfelder, um die Seite ordnungsgemäß zu laden, wie unter Anzeigen eines nativen Ladeindikatordokuments beschrieben. - Wenn Sie die Inhaltsseiten ihrer Registerkarte nicht ändern, wird die Registerkarten-App nicht geladen und zeigt den Fehler
There was a problem reaching this app
an.
isFullScreen
Optional – Boolescher Wert
Gibt an, ob eine persönliche App ohne Registerkartenkopfleiste gerendert wird (was den Vollbildmodus anzeigt). Standardwert: false
Hinweis
isFullScreen
funktioniert nur für Apps, die in Ihrer Organisation veröffentlicht wurden. Hochgeladene und veröffentlichte Drittanbieter-Apps können diese Eigenschaft nicht verwenden (sie wird ignoriert).Der
isFullScreen=true
Parameter entfernt die von Teams bereitgestellte Kopfzeile und den Titel aus persönlichen Apps und Dialogen. Es wird jedoch empfohlen, denisFullScreen=true
Parameter nicht mit Chat-Bot-Apps zu verwenden.
Aktivitäten
Optional – Objekt
Definiert die Eigenschaften, die Ihre App zum Posten eines Benutzeraktivitätsfeeds verwendet.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
activityTypes |
Array mit Objekten | 128 Elemente | Geben Sie die Arten von Aktivitäten an, die Ihre App in einem Benutzeraktivitätsfeed veröffentlichen kann. |
activities.activityTypes
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
type |
String | 64 Zeichen | ✔️ | Der Benachrichtigungstyp. |
description |
Zeichenfolge | 128 Zeichen | ✔️ | Eine kurze Beschreibung der Benachrichtigung. |
templateText |
Zeichenfolge | 128 Zeichen | ✔️ | Beispiel: "{actor} hat die Aufgabe {taskId} für Sie erstellt." |
{
"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
Optional – Zeichenfolge
Gibt den standardmäßig für diese App definierten Installationsbereich an. Der definierte Bereich ist die Option, die auf der Schaltfläche angezeigt wird, wenn ein Benutzer versucht, die App hinzuzufügen. Mögliche Optionen sind:
personal
team
groupChat
meetings
defaultGroupCapability
Optional – Objekt
Wenn ein Gruppeninstallationsbereich ausgewählt ist, wird die Standardfunktion definiert, wenn der Benutzer die App installiert.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
team |
Zeichenfolge | Wenn der ausgewählte Installationsbereich team ist, gibt dieses Feld die verfügbare Standardfunktion an. Optionen: tab , bot oder connector . |
||
groupchat |
String | Wenn der ausgewählte Installationsbereich groupChat ist, gibt dieses Feld die verfügbare Standardfunktion an. Optionen: tab , bot oder connector . |
||
meetings |
Zeichenfolge | Wenn der ausgewählte Installationsbereich meetings ist, gibt dieses Feld die verfügbare Standardfunktion an. Optionen: tab , bot oder connector . |
configurableProperties
Optional – Array
Der configurableProperties
-Block definiert die App-Eigenschaften, die Microsoft Teams-Administratoren anpassen können. Weitere Informationen finden Sie unter Aktivieren der App-Anpassung. Die App-Anpassungsfunktion wird in benutzerdefinierten Apps oder benutzerdefinierten Apps, die für Ihre Organisation (BRANCHEN-Apps) erstellt wurden, nicht unterstützt.
Hinweis
Es muss mindestens eine Eigenschaft definiert werden. Sie können in diesem Block maximal neun Eigenschaften definieren.
Sie können eine der folgenden Eigenschaften definieren:
- name: Der Anzeigename der App.
- shortDescription: Die kurze Beschreibung der App.
- longDescription: Die lange Beschreibung der App.
- smallImageUrl: Das Kontursymbol der App.
- largeImageUrl: Das Farbsymbol der App.
- accentColor: Die zu verwendende Farbe und ein Hintergrund für Ihre Kontursymbole.
- developerUrl: Die HTTPS-URL der Website des Entwicklers.
- privacyUrl: Die HTTPS-URL der Datenschutzrichtlinie des Entwicklers.
- termsOfUseUrl: Die HTTPS-URL der Nutzungsbedingungen des Entwicklers.
supportedChannelTypes
Optional – Array
Aktiviert Ihre App in Kanälen die keine Standardkanäle sind. Wenn Ihre App einen Teambereich unterstützt und diese Eigenschaft definiert ist, aktiviert Microsoft Teams Ihre App in jedem Kanaltyp entsprechend. Die supportedChannelTypes-Eigenschaft unterstützt sharedChannels
nur und privateChannels
.
Hinweis
- Wenn Ihre App einen Teambereich unterstützt, funktioniert dieser in den Standardkanälen unabhängig von den in dieser Eigenschaft definierten Werten.
- Ihre Anwendung kann die individuellen Eigenschaften der einzelnen Kanaltypen berücksichtigen, um ordnungsgemäß zu funktionieren. Informationen zum Aktivieren Ihrer Registerkarte für private und freigegebene Kanäle finden Sie unter Abrufen des Kontexts in privaten Kanälen und Abrufen von Kontext in freigegebenen Kanälen.
defaultBlockUntilAdminAction
Optional – Boolescher Wert
Wenn die defaultBlockUntilAdminAction
-Eigenschaft auf true festgelegt ist, ist die App so lange standardmäßig für Benutzer ausgeblendet, bis der Administrator sie zulässt. Bei Festlegung auf true ist die App für alle Mandanten und Endbenutzer ausgeblendet. Mandantenadministratoren können die App im Microsoft Teams Admin Center sehen und Maßnahmen ergreifen, um sie zuzulassen oder zu blockieren. Der Standardwert ist false. Weitere Informationen zum Standardmäßigen App-Block finden Sie unter Blockieren von Apps standardmäßig für Benutzer, bis ein Administrator dies genehmigt.
publisherDocsUrl
Optional – Zeichenfolge
Maximale Größe – 2048 Zeichen
Der Wert des publisherDocsUrl
Parameters ist eine sichere HTTPS-URL zur Dokumentations- und Informationsseite der App, die App-Entwickler angeben möchten. Mandantenadministratoren erhalten dokumentationen zur App unter dieser URL. Teams Admin Center zeigt die URL auf der Seite mit den App-Details an. Die Dokumentation kann Anweisungen für Administratoren enthalten, um die App-Einführung und den App-Rollout zu erleichtern. In der App-Dokumentation können Sie auch Anweisungen oder Informationen zur App einfügen, die für den Mandantenadministrator, Benutzer und andere Geschäftsbeteiligte nützlich sind.
subscriptionOffer
Optional – Objekt
Gibt das Ihrer App zugeordnete SaaS-Angebot an.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
offerId |
Zeichenfolge | 2048 Zeichen | ✔️ | Ein eindeutiger Bezeichner, der Ihre Publisher-ID und Angebots-ID enthält. Diese finden Sie im Partner Center. Sie müssen die Zeichenfolge als publisherId.offerId formatieren. |
meetingExtensionDefinition
Optional – Objekt
Geben Sie die Besprechungserweiterungsdefinition an. Weitere Informationen finden Sie unter benutzerdefinierten Szenen im Zusammen-Modus in Teams.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
scenes |
Array mit Objekten | 5 Elemente | Unterstützte Besprechungsszenen. | |
supportsStreaming |
Boolesch | Ein Wert, der angibt, ob eine App die Audio- und Videoinhalte der Besprechung auf einen RTMP-Endpunkt (Real-Time Meeting Protocol) streamen kann. Standardwert: false |
||
supportsAnonymousGuestUsers |
Boolesch | Ein -Wert, der angibt, ob eine App den Zugriff für anonyme Benutzer unterstützt. Standardwert: false |
Hinweis
Die supportsAnonymousGuestUsers
-Eigenschaft im App-Manifestschema v1.16 wird nur im neuen Teams-Client unterstützt.
meetingExtensionDefinition.scenes
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
id |
Zeichenfolge | ✔️ | Der eindeutige Bezeichner für die Szene. Diese ID muss eine GUID sein. | |
name |
Zeichenfolge | 128 Zeichen | ✔️ | Der Name der Szene. |
file |
Zeichenfolge | 2048 Zeichen | ✔️ | Der relative Dateipfad zur JSON-Metadatendatei der Szenen. |
preview |
Zeichenfolge | 2048 Zeichen | ✔️ | Der relative Dateipfad zum PNG-Vorschausymbol der Szenen. |
maxAudience |
Ganze Zahl | 50 | ✔️ | Die maximale Anzahl von Zielgruppen, die in der Szene unterstützt werden. |
seatsReservedForOrganizersOrPresenters |
Ganze Zahl | 50 | ✔️ | Die Anzahl der Plätze, die für Organisatoren oder Moderatoren reserviert sind. |
Autorisierung
Optional – Objekt
Hinweis
authorization
wird nur für die App-Manifestversion 1.12 oder höher unterstützt.
Spezifizieren und konsolidieren Sie autorisierungsbezogene Informationen für die App.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
permissions |
Object | Liste der Berechtigungen, welche die App benötigt, um zu funktionieren. |
authorization.permissions
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
resourceSpecific |
Array mit Objekten | 16 Elemente | Berechtigungen, die den Datenzugriff auf Ebene der Ressourceninstanz schützen. |
authorization.permissions.resourceSpecific
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
type |
Zeichenfolge | ✔️ | Der Typ der Berechtigung für die ressourcenspezifische Zustimmung (RSC). Optionen: Application und Delegated . |
|
name |
Zeichenfolge | 128 Zeichen | ✔️ | Der Name der RSC-Berechtigung. Weitere Informationen finden Sie unter RSC-Anwendungsberechtigungen und delegierte RSC-Berechtigungen. |
RSC-Anwendungsberechtigungen
Anwendungsberechtigungen ermöglichen der App den Zugriff auf Daten, ohne dass ein Benutzer angemeldet ist. Informationen zu Anwendungsberechtigungen finden Sie unter RSC-Berechtigungen für Microsoft Graph und Microsoft BotSDK.
Delegierte RSC-Berechtigungen
Delegierte Berechtigungen ermöglichen der App den Zugriff auf Daten im Namen des angemeldeten Benutzers.
Delegierte RSC-Berechtigungen für ein Team
Name Beschreibung ChannelMeetingParticipant.Read.Group
Ermöglicht es der App, im Namen des angemeldeten Benutzers die Teilnehmerinformationen (Name, Rolle, ID, Beitritts- und Abwesenheitszeiten) von Channel-Meetings zu lesen, die mit diesem Team verbunden sind. ChannelMeetingIncomingAudio.Detect.Group
Ermöglicht der App das Erkennen eingehender Audiodaten in Kanalbesprechungen, die dem Team zugeordnet sind. ChannelMeetingActiveSpeaker.Read.Group
Ermöglicht der App das Lesen der Teilnehmer, die Audiodaten an die Kanalbesprechungen senden, die dem Team zugeordnet sind. ChannelMeetingAudioVideo.Stream.Group
Ermöglicht der App das Streamen von Audio-Video-Inhalten aus Kanalbesprechungen, die dem Team zugeordnet sind. InAppPurchase.Allow.Group
Ermöglicht es der App, Marketplace-Angebote für Benutzer im Team anzuzeigen und ihre Einkäufe innerhalb der App im Namen des angemeldeten Benutzers abzuschließen. ChannelMeetingStage.Write.Group
Ermöglicht der App das Anzeigen von Inhalten auf der Besprechungsphase in Kanalbesprechungen, die dem Team zugeordnet sind, im Namen des angemeldeten Benutzers. LiveShareSession.ReadWrite.Group
Ermöglicht der App, Live Share-Sitzungen für das Team zu erstellen und zu synchronisieren und im Namen des angemeldeten Benutzers Zugriffsinformationen wie Name und Rolle, über die Teamliste und alle zugehörigen Besprechungen abzurufen. MeetingParticipantReaction.Read.Group
Ermöglicht der App das Lesen von Reaktionen von Teilnehmern in Kanalbesprechungen, die dem Team zugeordnet sind. DELEGIERTE RSC-Berechtigungen für Chats oder Besprechungen
Name Beschreibung InAppPurchase.Allow.Chat
Ermöglicht es der App, Marketplace-Angebote für die Benutzer im Chat und jede zugehörige Besprechung anzuzeigen und ihre Einkäufe innerhalb der App im Namen des angemeldeten Benutzers abzuschließen. MeetingStage.Write.Chat
Ermöglicht der App das Anzeigen von Inhalten auf der Besprechungsphase in Besprechungen, die dem Chat zugeordnet sind, im Namen des angemeldeten Benutzers. OnlineMeetingParticipant.Read.Chat
Ermöglicht der App das Lesen von Teilnehmerinformationen, einschließlich Name, Rolle, ID, Beigetretener und verlassener Zeiten, der Besprechung, die dem Chat zugeordnet ist, im Namen des angemeldeten Benutzers. OnlineMeetingParticipant.ToggleIncomingAudio.Chat
Ermöglicht der App das Umschalten eingehender Audiodaten für Teilnehmer an Besprechungen, die dem Chat zugeordnet sind, im Namen des angemeldeten Benutzers. LiveShareSession.ReadWrite.Chat
Ermöglicht der App, Live Share-Sitzungen für den Chat zu erstellen und zu synchronisieren und im Namen des angemeldeten Benutzers zugriffsbezogene Informationen wie Name und Rolle, über die Chatliste und alle zugehörigen Besprechungen zu erhalten. MeetingParticipantReaction.Read.Chat
Ermöglicht der App das Lesen von Reaktionen von Teilnehmern in Besprechungen, die dem Chat zugeordnet sind. OnlineMeetingIncomingAudio.Detect.Chat
Ermöglicht der App das Erkennen von Änderungen im status eingehender Audiodaten in Besprechungen, die dem Chat zugeordnet sind, im Namen des angemeldeten Benutzers. OnlineMeetingActiveSpeaker.Read.Chat
Ermöglicht der App das Lesen von Teilnehmern, die Audiodaten an die Besprechungen senden, die dem Chat zugeordnet sind. OnlineMeetingAudioVideo.Stream.Chat
Ermöglicht der App das Streamen von Audiovideoinhalten von Besprechungen, die dem Chat zugeordnet sind. Delegierte RSC-Berechtigungen für Benutzer
Name Beschreibung CameraStream.Read.User
Ermöglicht der App das Lesen des Kameradatenstroms des Benutzers. InAppPurchase.Allow.User
Ermöglicht es der App, dem Benutzer Angebote auf dem Marktplatz zu zeigen und die Einkäufe des Benutzers innerhalb der App im Namen des angemeldeten Benutzers abzuschließen. OutgoingVideoStream.Write.User
Ermöglicht der App, das ausgehende Video des Benutzers zu ändern. MicrophoneStream.Read.User
Ermöglicht der App das Lesen des Mikrofonstreams des Benutzers. MeetingParticipantReaction.Read.User
Ermöglicht der App, die Reaktionen von Benutzern während der Teilnahme an einer Besprechung zu lesen.
Erweiterungen
Optional – Objekt
Die extensions
Eigenschaft gibt Outlook-Add-Ins innerhalb eines App-Manifests an und vereinfacht die Verteilung und den Erwerb im gesamten Microsoft 365-Ökosystem. Jede App unterstützt nur eine Erweiterung.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
requirements |
Object | Gibt die Client- oder Hostanforderungen für die Erweiterung an. | ||
runtimes |
Array | 20 | Konfiguriert die Laufzeiten und Aktionen, die von jedem Erweiterungspunkt verwendet werden können. Weitere Informationen finden Sie unter Laufzeiten in Office-Add-Ins. | |
ribbons |
Array | 20 | Definiert den Erweiterungspunkt des Menübands. | |
autoRunEvents |
Array | 10 | Definiert den ereignisbasierten Aktivierungserweiterungspunkt. | |
alternates |
Array | 10 | Gibt die Beziehung zu alternativen vorhandenen Microsoft 365-Lösungen an. Es wird verwendet, um Add-Ins desselben Herausgebers mit überlappender Funktionalität auszublenden oder zu priorisieren. | |
audienceClaimUrl |
Zeichenfolge | 2048 Zeichen | Gibt die URL für Ihre Erweiterung an und wird zum Überprüfen von Exchange-Benutzeridentitätstoken verwendet. Weitere Informationen finden Sie unter Innerhalb des Exchange-Identitätstokens. |
Weitere Informationen finden Sie unter Office-Add-Ins-Manifest für Microsoft 365.
extensions.requirements
Das extensions.requirements
-Objekt gibt die Bereiche, Formfaktoren und Anforderungssätze der Office JavaScript-Bibliothek an, die auf dem Office-Client unterstützt werden müssen, damit das Add-In installiert werden kann. Anforderungen werden auch für die untergeordneten Eigenschaften "ribbon", "runtime", "alternates" und "autoRunEvents" unterstützt, um selektiv einige Features des Add-Ins herauszufiltern. Weitere Informationen finden Sie unter Angeben von Office-Add-In-Anforderungen im einheitlichen Manifest für Microsoft 365.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
capabilities |
Array | 100 | Identifiziert die Anforderungssätze. | |
capabilities.name |
Zeichenfolge | ✔️ | Gibt den Namen des Anforderungssatzes an. | |
capabilities.minVersion |
String | Gibt die Mindestversion für den Anforderungssatz an. | ||
capabilities.maxVersion |
String | Gibt die maximale Version für den Anforderungssatz an. | ||
scopes |
Array von Enumerationen | 1 | Identifiziert die Bereiche, in denen das Add-In ausgeführt werden kann, und definiert die Microsoft 365-Anwendungen, in denen die Erweiterung ausgeführt werden kann. Beispiel mail : (Outlook). Unterstützter Wert: mail |
|
formFactors |
Array von Enumerationen | Identifiziert die Formfaktoren, die das Add-In unterstützen. Unterstützte Werte: mobile , desktop |
extensions.runtimes
Optional – Array
Das extensions.runtimes
Array konfiguriert die Sätze von Laufzeiten und Aktionen, die jeder Erweiterungspunkt verwenden kann.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
id |
String | 64 Zeichen | ✔️ | Gibt die ID für die Runtime an. |
type |
Zeichenfolgenenumeration | ✔️ | Gibt den Typ der Laufzeit an. Der unterstützte Enumerationswert für die browserbasierte Runtime ist general . |
|
code |
Objekt | ✔️ | Gibt den Speicherort des Codes für die Runtime an. Basierend auf runtime.type können Add-Ins entweder eine JavaScript-Datei oder eine HTML-Seite mit einem eingebetteten script Tag verwenden, das die URL einer JavaScript-Datei angibt. Beide URLs sind in Situationen erforderlich, in denen unsicher runtime.type ist. |
|
code.page |
Zeichenfolge | 2048 Zeichen | ✔️ | Gibt die URL der Webseite an, die ein eingebettetes script Tag enthält, das die URL einer JavaScript-Datei angibt (die in eine browserbasierte Runtime geladen werden soll). |
code.script |
Zeichenfolge | 2048 Zeichen | Gibt die URL der JavaScript-Datei an, die in die reine JavaScript-Runtime geladen werden soll. | |
lifetime |
Zeichenfolgenenumeration | Gibt die Lebensdauer der Laufzeit an. Laufzeiten mit einer short Lebensdauer behalten den Zustand nicht über Alle Ausführungen hinweg bei, während Laufzeiten mit einer long Lebensdauer dies tun. Weitere Informationen finden Sie unter Runtimes in Office-Add-Ins.Standardwert: short |
||
actions |
Array | 20 | Gibt den Satz von Aktionen an, die von der Runtime unterstützt werden. Eine Aktion führt entweder eine JavaScript-Funktion aus oder öffnet eine Ansicht, z. B. einen Aufgabenbereich. | |
actions.id |
String | 64 Zeichen | ✔️ | Gibt die ID für die Aktion an, die an die Codedatei übergeben wird. |
actions.type |
Zeichenfolge | ✔️ | Gibt den Aktionstyp an. Der executeFunction Typ führt eine JavaScript-Funktion aus, ohne darauf zu warten, dass sie abgeschlossen ist, und der openPage Typ öffnet eine Seite in einer bestimmten Ansicht. |
|
actions.displayName |
String | 64 Zeichen | Gibt den Anzeigenamen der Aktion an, und es ist nicht die Bezeichnung einer Schaltfläche oder eines Menüelements, die die Aktion aufruft (die mit tabs.groups.controls.label konfiguriert ist). |
|
actions.pinnable |
Boolesch | Gibt an, dass ein Aufgabenbereich das Anheften unterstützt, sodass der Aufgabenbereich geöffnet bleibt, wenn der Benutzer die Auswahl ändert. Standardwert: false |
||
actions.view |
String | 64 Zeichen | Gibt die Ansicht an, in der die Seite geöffnet werden muss. Sie wird nur verwendet, wenn actions.type ist openPage . |
|
actions.multiselect |
Boolesch | Gibt an, ob der Endbenutzer mehrere Elemente auswählen kann, z. B. mehrere E-Mail-Nachrichten, und die Aktion auf alle anwenden kann. Standardwert: false |
||
actions.supportsNoItemContext |
Boolesch | Ermöglicht die Aktivierung von Aufgabenbereich-Add-Ins, ohne dass der Lesebereich aktiviert oder eine Nachricht ausgewählt ist. Standardwert: false |
||
requirements |
Objekt | Gibt die Bereiche, formFactors und Anforderungssätze der Office JavaScript-Bibliothek an, die auf dem Office-Client unterstützt werden müssen, damit die Runtime in das Add-In eingeschlossen werden kann. Weitere Informationen finden Sie unter Angeben von Office-Add-In-Anforderungen im einheitlichen Manifest für Microsoft 365. | ||
requirements.capabilities |
Array | Identifiziert die Anforderungssätze. Optionen: name (erforderlich), minVersion , maxVersion |
||
requirements.capabilities.name |
String | ✔️ | Gibt den Namen des Anforderungssatzes an. | |
requirements.capabilities.minVersion |
Zeichenfolge | Gibt die Mindestversion für den Anforderungssatz an. | ||
requirements.capabilities.maxVersion |
Zeichenfolge | Gibt die maximale Version für den Anforderungssatz an. | ||
requirements.scopes |
Array von Enumerationen | 1 | Identifiziert die Bereiche, in denen das Add-In ausgeführt werden kann, und definiert die Microsoft 365-Anwendungen, in denen die Erweiterung ausgeführt werden kann. Beispiel mail : (Outlook). Unterstützter Wert: mail |
|
requirements.formFactors |
Array von Enumerationen | Identifiziert die Formfaktoren, die das Add-In unterstützen. Unterstützte Werte: mobile , desktop |
Informationen zur Verwendung extensions.runtimes
von finden Sie unter Erstellen von Add-In-Befehlen, Konfigurieren der Runtime für einen Aufgabenbereich und Konfigurieren der Laufzeit für den Funktionsbefehl.
extensions.ribbons
Optional – Array
Die extensions.ribbons
-Eigenschaft bietet die Möglichkeit, Add-In-Befehle (Schaltflächen und Menüelemente) zum Menüband der Microsoft 365-Anwendung hinzuzufügen. Die Menübanddefinition wird aus dem Array basierend auf den Anforderungen und der ersten Reihenfolge ausgewählt.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
contexts |
Array | 7 | Gibt das Microsoft 365-Anwendungsfenster an, in dem die Menübandanpassung für den Benutzer verfügbar ist. Jedes Element im Array ist ein Element eines Zeichenfolgenarrays. Unterstützte Werte: mailRead , mailCompose , meetingDetailsOrganizer , meetingDetailsAttendee , onlineMeetingDetailsOrganizer , logEventMeetingDetailsAttendee default |
|
requirements |
Objekt | Gibt die Bereiche, formFactors und Office JavaScript Library-Anforderungssätze an, die auf dem Office-Client unterstützt werden müssen, damit die Menübandanpassung angezeigt wird. Weitere Informationen finden Sie unter Angeben von Office-Add-In-Anforderungen im einheitlichen Manifest für Microsoft 365. | ||
requirements.capabilities |
Array | Identifiziert die Anforderungssätze. Optionen: name (erforderlich), minVersion , maxVersion |
||
requirements.capabilities.name |
String | ✔️ | Gibt den Namen des Anforderungssatzes an. | |
requirements.capabilities.minVersion |
Zeichenfolge | Gibt die Mindestversion für den Anforderungssatz an. | ||
requirements.capabilities.maxVersion |
Zeichenfolge | Gibt die maximale Version für den Anforderungssatz an. | ||
requirements.scopes |
Array von Enumerationen | 1 | Identifiziert die Bereiche, in denen das Add-In ausgeführt werden kann, und definiert die Microsoft 365-Anwendungen, in denen die Erweiterung ausgeführt werden kann. Beispiel mail : (Outlook). Unterstützter Wert: mail |
|
requirements.formFactors |
Array von Enumerationen | Identifiziert die Formfaktoren, die das Add-In unterstützen. Unterstützte Werte: mobile , desktop |
||
tabs |
Array | 20 | ✔️ | Konfiguriert die benutzerdefinierten Registerkarten im Menüband der Microsoft 365-Anwendung. |
tabs.id |
String | 64 Zeichen | Gibt die ID für die Registerkarte in der App an. | |
tabs.builtInTabId |
String | 64 Zeichen | Gibt die ID einer integrierten Registerkarte des Office-Menübands an. Weitere Informationen zu möglichen Werten finden Sie unter Suchen der IDs der integrierten Registerkarten des Office-Menübands. Die einzigen anderen untergeordneten Eigenschaften des Tab-Objekts, die mit diesem kombiniert werden können, sind groups und customMobileRibbonGroups . |
|
tabs.label |
String | 64 Zeichen | Gibt den Text an, der für die Registerkarte angezeigt wird. Trotz der maximalen Länge von 64 Zeichen empfiehlt es sich, die Bezeichnung auf 16 Zeichen zu beschränken, um die Registerkarte im Menüband ordnungsgemäß auszurichten. | |
tabs.position |
Objekt | Konfiguriert die Position der benutzerdefinierten Registerkarte relativ zu anderen Registerkarten im Menüband. | ||
tabs.position.builtInTabId |
String | 64 Zeichen | ✔️ | Gibt die ID der integrierten Registerkarte an, neben der die benutzerdefinierte Registerkarte positioniert werden soll. Weitere Informationen finden Sie unter Suchen der IDs von Steuerelementen und Steuerelementgruppen. |
tabs.position.align |
Zeichenfolgenenumeration | ✔️ | Definiert die Ausrichtung der benutzerdefinierten Registerkarte relativ zur angegebenen integrierten Registerkarte. Unterstützte Werte: after , before |
|
tabs.groups |
Array | 10 | Definiert Gruppen von Steuerelementen auf einer Registerkarte des Menübands auf einem nicht mobilen Gerät. Informationen zu mobilen Geräten finden Sie unter tabs.customMobileRibbonGroups . |
|
tabs.groups.id |
String | 64 Zeichen | Gibt die ID für die Registerkartengruppe innerhalb der App an. Sie muss sich von jeder integrierten Gruppen-ID in der Microsoft 365-Anwendung und jeder anderen benutzerdefinierten Gruppe unterscheiden. | |
tabs.groups.label |
String | 64 Zeichen | Gibt den text an, der für die Gruppe angezeigt wird. Trotz der maximalen Länge von 64 Zeichen empfiehlt es sich, die Bezeichnung auf 16 Zeichen zu beschränken, um die Registerkarte im Menüband ordnungsgemäß auszurichten. | |
tabs.groups.icons |
Array | 3 | Gibt die Symbole an, die für die Gruppe angezeigt werden. | |
tabs.groups.icons.size |
Zahl | ✔️ | Gibt die Größe des Symbols in Pixeln an, das als 16 ,,,,24 32 ,40 ,48 ,,64 80 aufgezählt20 wird. Erforderliche Imagegrößen: 16 , 32 , 80 . |
|
tabs.groups.icons.url |
Zeichenfolge | 2048 Zeichen | ✔️ | Gibt die absolute URL des Symbols an. |
tabs.groups.controls |
Array | Konfiguriert die Schaltflächen und Menüs in der Gruppe. | ||
tabs.groups.controls.id |
String | 64 Zeichen | ✔️ | Gibt die ID für das Steuerelement innerhalb der App an. Sie muss sich von jeder integrierten Steuerelement-ID in der Microsoft 365-Anwendung und jedem anderen benutzerdefinierten Steuerelement unterscheiden. |
tabs.groups.controls.items |
Array | Konfiguriert die Elemente für ein Menüsteuerelement. | ||
tabs.groups.controls.items.id |
Zeichenfolge | ✔️ | Gibt die ID für ein Menüelement an. | |
tabs.groups.controls.items.type |
Zeichenfolgenenumeration | ✔️ | Definiert den Steuerelementtyp des Menüelements. Unterstützte Werte: button |
|
tabs.groups.controls.items.label |
String | 64 Zeichen | ✔️ | Gibt den text an, der für das Menüelement angezeigt wird. |
tabs.groups.controls.items.icons |
Array | Konfiguriert die Symbole für das Menüelement. | ||
tabs.groups.controls.items.icons.size |
Zahl | ✔️ | Gibt die Größe des Symbols in Pixeln an, das als 16 ,,,,24 32 ,40 ,48 ,,64 80 aufgezählt20 wird. Erforderliche Imagegrößen: 16 , 32 , 80 . |
|
tabs.groups.controls.items.icons.url |
URL | ✔️ | Gibt die absolute URL des Symbols an. | |
tabs.groups.controls.items.supertip |
✔️ | Konfiguriert einen Supertip für das Menüelement. Ein Supertip ist ein Benutzeroberflächenfeature, das ein kurzes Feld mit Hilfeinformationen zu einem Steuerelement anzeigt, wenn der Cursor darauf zeigt. Das Feld kann mehrere Textzeilen enthalten. | ||
tabs.groups.controls.items.supertip.title |
String | 64 Zeichen | ✔️ | Gibt den Titeltext des Supertips an. |
tabs.groups.controls.items.supertip.description |
Zeichenfolge | 128 Zeichen | ✔️ | Gibt die Beschreibung des Supertips an. |
tabs.groups.controls.items.actionId |
String | 64 Zeichen | ✔️ | Gibt die ID der Aktion an, die ausgeführt wird, wenn ein Benutzer das Steuerelement oder das Menüelement auswählt. Die actionId muss mit einem runtimes.actions.id Eigenschaftswert übereinstimmen. |
tabs.groups.controls.items.enabled |
Boolesch | Gibt an, ob das Menüelement anfänglich aktiviert ist. Standardwert: true |
||
tabs.groups.controls.items.overriddenByRibbonApi |
Boolesch | Gibt an, ob das Menüelement in Anwendungs- und Plattformkombinationen ausgeblendet wird, die die API (Office.ribbon.requestCreateControls) unterstützen. Diese API installiert benutzerdefinierte kontextbezogene Registerkarten auf dem Menüband. Standardwert: false |
||
tabs.groups.controls.type |
Zeichenfolge | ✔️ | Definiert den Steuerelementtyp. Unterstützte Werte: button , menu |
|
tabs.groups.controls.builtInControlId |
String | 64 Zeichen | ✔️ | Gibt die ID eines vorhandenen Microsoft 365-Steuerelements an. Weitere Informationen finden Sie unter Suchen der IDs von Steuerelementen und Steuerelementgruppen. Diese Eigenschaft kann nicht mit anderen untergeordneten Eigenschaften des Steuerelementobjekts kombiniert werden, da integrierte Steuerelemente nicht von einem Add-In angepasst werden können. |
tabs.groups.controls.label |
String | 64 Zeichen | ✔️ | Gibt den für das Steuerelement angezeigten Text an. Trotz der maximalen Länge von 64 Zeichen empfiehlt es sich, die Bezeichnung auf 16 Zeichen zu beschränken, um die Registerkarte im Menüband ordnungsgemäß auszurichten. |
tabs.groups.controls.icons |
Array | ✔️ | Definiert die Symbole für das Steuerelement. Es müssen mindestens drei untergeordnete Objekte vorhanden sein; eine mit size jeweils den Eigenschaften 16 , 32 und 80 Pixeln. |
|
tabs.groups.controls.icons.size |
Zahl | ✔️ | Gibt die Größe des Symbols in Pixeln an, das als 16 ,,,,24 32 ,40 ,48 ,,64 80 aufgezählt20 wird. Erforderliche Imagegrößen: 16 , 32 , 80 |
|
tabs.groups.controls.icons.url |
URL | Gibt die absolute URL zur Symboldatei an. | ||
tabs.groups.controls.supertip |
Objekt | ✔️ | Konfiguriert einen Supertip für das Steuerelement. Ein Supertip ist ein Benutzeroberflächenfeature, das ein kurzes Feld mit Hilfeinformationen zu einem Steuerelement anzeigt, wenn der Cursor darauf zeigt. Das Feld kann mehrere Textzeilen enthalten. | |
tabs.groups.controls.supertip.title |
String | 64 Zeichen | ✔️ | Gibt den Titeltext des Supertips an. |
tabs.groups.controls.supertip.description |
Zeichenfolge | 128 Zeichen | ✔️ | Gibt die Beschreibung des Supertips an. |
tabs.groups.controls.actionId |
String | 64 Zeichen | Erforderlich, wenn der Steuerelementtyp ist button . Verwenden Sie nicht, wenn der Steuerelementtyp ist menu . Gibt die ID der Aktion an, die ausgeführt wird, wenn ein Benutzer das Steuerelement auswählt. Der actionId muss mit der runtime.actions.id -Eigenschaft einer Aktion im runtimes -Objekt übereinstimmen. |
|
tabs.groups.controls.enabled |
Boolesch | Gibt an, ob das Steuerelement anfänglich aktiviert ist. Standardwert: true |
||
tabs.groups.controls.overriddenByRibbonApi |
Boolesch | Gibt an, ob das Steuerelement in Anwendungs- und Plattformkombinationen ausgeblendet wird, die die API (Office.ribbon.requestCreateControls) unterstützen. Diese API installiert benutzerdefinierte kontextbezogene Registerkarten auf dem Menüband. Standardwert: false |
||
tabs.groups.builtInGroupId |
String | 64 Zeichen | Gibt die ID einer integrierten Gruppe an. Weitere Informationen finden Sie unter Suchen der IDs von Steuerelementen und Steuerelementgruppen. Diese Eigenschaft kann nicht mit anderen untergeordneten Eigenschaften des Gruppenobjekts kombiniert werden, da integrierte Gruppen nicht durch ein Add-In angepasst werden können. | |
tabs.customMobileRibbonGroups |
Array | 10 | Definiert Gruppen von Steuerelementen auf der Standardregisterkarte des Menübands auf einem mobilen Gerät. Diese Arrayeigenschaft kann nur auf Registerkartenobjekten vorhanden sein, die über eine tabs.builtInTabId -Eigenschaft verfügen, die auf DefaultTab festgelegt ist. Für nicht mobile Geräte siehe tabs.groups oben. |
|
tabs.customMobileRibbonGroups.id |
Zeichenfolge | 250 Zeichen | ✔️ | Gibt die ID der Gruppe an. Sie muss sich von jeder integrierten Gruppen-ID in der Microsoft 365-Anwendung und jeder anderen benutzerdefinierten Gruppe unterscheiden. |
tabs.customMobileRibbonGroups.label |
Zeichenfolge | 32 Zeichen | ✔️ | Gibt die Bezeichnung für die Gruppe an. |
tabs.customMobileRibbonGroups.controls |
Array | 20 | ✔️ | Definiert die Steuerelemente in der Gruppe. Es werden nur mobile Schaltflächen unterstützt. |
tabs.customMobileRibbonGroups.controls.id |
Zeichenfolge | 250 Zeichen | ✔️ | Gibt die ID des Steuerelements an, z msgReadFunctionButton . B. . |
tabs.customMobileRibbonGroups.controls.type |
Zeichenfolgenenumeration | ✔️ | Gibt den Typ des Steuerelements an. Unterstützter Wert: MobileButton |
|
tabs.customMobileRibbonGroups.controls.label |
Zeichenfolge | 32 Zeichen | ✔️ | Gibt die Bezeichnung des Steuerelements an. |
tabs.customMobileRibbonGroups.controls.actionId |
String | 64 Zeichen | ✔️ | Gibt die ID der Aktion an, die ausgeführt wird, wenn ein Benutzer das Steuerelement auswählt. Der actionId muss mit der runtime.actions.id -Eigenschaft einer Aktion im runtimes -Objekt übereinstimmen. |
tabs.customMobileRibbonGroups.controls.icons |
Array | 9 | ✔️ | Gibt die Symbole an, die abhängig von den Abmessungen und dpi des Bildschirms des mobilen Geräts auf dem Steuerelement angezeigt werden. Es müssen genau 9 Symbole vorhanden sein. |
tabs.customMobileRibbonGroups.controls.icons.size |
Zahlenenumerung | ✔️ | Größe des Symbols in Pixel. Die erforderlichen Größen sind 25, 32 und 48. Für jeden möglichen Wert der Symboleigenschaft scale muss genau eine größe vorhanden sein. |
|
tabs.customMobileRibbonGroups.controls.icons.url |
Zeichenfolge | 2048 Zeichen | ✔️ | Die vollständige, absolute URL der Bilddatei des Symbols. |
tabs.customMobileRibbonGroups.controls.icons.scale |
Zahlenenumerung | ✔️ | Gibt die UIScreen.scale-Eigenschaft für iOS-Geräte an. Die möglichen Werte sind 1, 2 und 3. Für jeden möglichen Wert der Eigenschaft der Symbole size muss genau ein Wert vorhanden sein. |
Informationen zur Verwendung extensions.ribbons
von finden Sie unter Erstellen von Add-In-Befehlen, Konfigurieren der Benutzeroberfläche für den Aufgabenbereichbefehl und Konfigurieren der Benutzeroberfläche für den Funktionsbefehl.
extensions.autoRunEvents
Optional – Array
Die extensions.autoRunEvents
-Eigenschaft definiert ereignisbasierte Aktivierungserweiterungspunkte.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
events |
Array | 20 | ✔️ | Konfiguriert das Ereignis, das bewirkt, dass Aktionen in einem Outlook-Add-In automatisch ausgeführt werden. Weitere Informationen finden Sie beispielsweise unter Verwenden intelligenter Warnungen und der OnMessageSend Ereignisse und OnAppointmentSend in Ihren Outlook-Add-Ins. |
events.type |
String | 64 Zeichen | ✔️ | Gibt den Ereignistyp an. Informationen zu unterstützten Typen finden Sie unter Unterstützte Ereignisse. |
events.actionId |
String | 64 Zeichen | ✔️ | Identifiziert die Aktion, die ausgeführt wird, wenn das Ereignis ausgelöst wird. Die actionId muss mit runtime.actions.id übereinstimmen. |
events.options |
Objekt | Konfiguriert, wie Outlook auf das Ereignis reagiert. | ||
events.options.sendMode |
Zeichenfolge | ✔️ | Gibt die Aktionen an, die während einer E-Mail-Sendeaktion ausgeführt werden sollen. Unterstützte Werte: promptUser , softBlock , block . Weitere Informationen finden Sie unter Verfügbare Sendemodusoptionen. |
|
requirements |
Objekt | Gibt die Bereiche, formFactors und Anforderungssätze der Office JavaScript-Bibliothek an, die auf dem Office-Client unterstützt werden müssen, damit der Ereignisbehandlungscode ausgeführt werden kann. Weitere Informationen finden Sie unter Angeben von Office-Add-In-Anforderungen im einheitlichen Manifest für Microsoft 365. | ||
requirements.capabilities |
Array | Identifiziert die Anforderungssätze. Optionen: name (erforderlich), minVersion , maxVersion |
||
requirements.capabilities.name |
Zeichenfolge | ✔️ | Gibt den Namen des Anforderungssatzes an. | |
requirements.capabilities.minVersion |
Zeichenfolge | Gibt die Mindestversion für den Anforderungssatz an. | ||
requirements.capabilities.maxVersion |
Zeichenfolge | Gibt die maximale Version für den Anforderungssatz an. | ||
requirements.scopes |
Array von Enumerationen | 1 | Identifiziert die Bereiche, in denen das Add-In ausgeführt werden kann, und definiert die Microsoft 365-Anwendungen, in denen die Erweiterung ausgeführt werden kann. Beispiel mail : (Outlook). Unterstützter Wert: mail |
|
requirements.formFactors |
Array von Enumerationen | Identifiziert die Formfaktoren, die das Add-In unterstützen. Unterstützte Werte: mobile , desktop |
extensions.alternates
Optional – Array
Die extensions.alternates
-Eigenschaft wird verwendet, um bestimmte marktinterne Add-Ins auszublenden oder zu priorisieren, wenn Sie mehrere Add-Ins mit überlappenden Funktionen veröffentlicht haben.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
prefer |
Object | Gibt die Abwärtskompatibilität mit einem entsprechenden COM-Add-In, XLL-Add-In oder beidem an. | ||
prefer.comAddin |
Objekt | Gibt ein COM-Add-In an, das anstelle des Microsoft 365-Web-Add-Ins für Windows verwendet werden muss. | ||
prefer.comAddin.progId |
String | 64 Zeichen | ✔️ | Gibt den Anwendungstyp an, in dem die Erweiterung ausgeführt werden kann. |
hide |
Objekt | Konfiguriert, wie ein anderes Add-In ausgeblendet wird, das Sie bei jeder Installation des Add-Ins veröffentlicht haben, damit Benutzer nicht beides auf der Microsoft 365-Benutzeroberfläche sehen. Verwenden Sie diese Eigenschaft beispielsweise, wenn Sie zuvor ein Add-In veröffentlicht haben, das das alte XML-App-Manifest verwendet, und Sie es durch eine Version ersetzen, die das neue JSON-App-Manifest verwendet. | ||
hide.storeOfficeAddin |
Objekt | Gibt ein in Microsoft AppSource verfügbares Microsoft 365-Add-In an. | ||
hide.storeOfficeAddin.officeAddinId |
String | 64 Zeichen | ✔️ | Gibt die ID des auszublendenden Add-Ins im Markt an. Die GUID stammt aus der App-Manifesteigenschaft id , wenn das marktinterne Add-In das JSON-App-Manifest verwendet. Die GUID wird aus dem <Id> -Element übernommen, wenn das marktinterne Add-In das XML-App-Manifest verwendet. |
hide.storeOfficeAddin.assetId |
String | 64 Zeichen | ✔️ | Gibt die AppSource-Ressourcen-ID des im Markt befindlichen Add-Ins an, das ausgeblendet werden soll. |
hide.customOfficeAddin |
Objekt | Konfiguriert das Ausblenden eines marktinternen Add-Ins, das nicht über AppSource verteilt wird. | ||
hide.customOfficeAddin.officeAddinId |
String | 64 Zeichen | ✔️ | Gibt die ID des auszublendenden Add-Ins im Markt an. Die GUID stammt aus der App-Manifesteigenschaft id , wenn das marktinterne Add-In das JSON-App-Manifest verwendet. Die GUID wird aus dem <Id> -Element übernommen, wenn das marktinterne Add-In das XML-App-Manifest verwendet. |
requirements |
Objekt | Gibt die Bereiche, formFactors und Office JavaScript Library-Anforderungssätze an, die auf dem Office-Client unterstützt werden müssen, damit die Eigenschaften "hide", "prefer" oder "alternateIcons" wirksam werden. Weitere Informationen finden Sie unter Angeben von Office-Add-In-Anforderungen im einheitlichen Manifest für Microsoft 365. | ||
requirements.capabilities |
Array | Identifiziert die Anforderungssätze. Optionen: name (erforderlich), minVersion , maxVersion |
||
requirements.capabilities.name |
Zeichenfolge | ✔️ | Gibt den Namen des Anforderungssatzes an. | |
requirements.capabilities.minVersion |
Zeichenfolge | Gibt die Mindestversion für den Anforderungssatz an. | ||
requirements.capabilities.maxVersion |
Zeichenfolge | Gibt die maximale Version für den Anforderungssatz an. | ||
requirements.scopes |
Array von Enumerationen | 1 | Identifiziert die Bereiche, in denen das Add-In ausgeführt werden kann, und definiert die Microsoft 365-Anwendungen, in denen die Erweiterung ausgeführt werden kann. Beispiel mail : (Outlook). Unterstützter Wert: mail |
|
requirements.formFactors |
Array von Enumerationen | Identifiziert die Formfaktoren, die das Add-In unterstützen. Unterstützte Werte: mobile , desktop |
||
alternateIcons |
Objekt | Gibt die Standard Symbole an, die verwendet werden, um das Add-In in älteren Versionen von Office darzustellen. Diese Eigenschaft ist erforderlich , wenn das Office-Add-In in Office auf Mac, unbefristeten Office-Lizenzen und Microsoft 365-Abonnementversionen von Office unter Windows vor 2304 (Build 16320.00000) installiert werden kann. | ||
alternateIcons.icon |
Objekt | ✔️ | Gibt die Eigenschaften der Bilddatei an, die zum Darstellen des Add-Ins verwendet wird. | |
alternateIcons.icon.size |
Zahlenenumerung | ✔️ | Gibt die Größe des Symbols in Pixeln an, das als 16 ,,,,24 32 ,40 ,48 ,,64 80 aufgezählt20 wird. Erforderliche Imagegrößen: 16 , 32 , 80 . |
|
alternateIcons.icon.url |
Zeichenfolge | 2048 Zeichen | ✔️ | Gibt die vollständige, absolute URL der Bilddatei an, die zum Darstellen des Add-Ins verwendet wird. Das Symbolbild muss 64 x 64 Pixel groß sein und eines der folgenden Dateiformate verwenden: GIF, JPG, PNG, EXIF, BMP, TIFF. |
alternateIcons.highResolutionIcon |
Objekt | ✔️ | Gibt die Eigenschaften der Bilddatei an, die verwendet wird, um das Add-In auf Bildschirmen mit hohem DPI-Wert darzustellen. | |
alternateIcons.highResolutionIcon.size |
Zahlenenumerung | ✔️ | Gibt die Größe des Symbols in Pixeln an, das als 16 ,,,,24 32 ,40 ,48 ,,64 80 aufgezählt20 wird. Erforderliche Imagegrößen: 16 , 32 , 80 . |
|
alternateIcons.highResolutionIcon.url |
Zeichenfolge | 2048 Zeichen | ✔️ | Gibt die vollständige, absolute URL der Bilddatei an, die verwendet wird, um das Add-In auf Bildschirmen mit hohem DPI-Wert darzustellen. Das Symbolbild muss 128 x 128 Pixel groß sein und eines der folgenden Dateiformate verwenden: GIF, JPG, PNG, EXIF, BMP, TIFF. |
dashboardCards
Optional – Array
Definiert eine Liste von Karten, die an eine Dashboard angeheftet werden können, z. B. Microsoft Viva Connections, um eine zusammengefasste Ansicht von App-Informationen bereitzustellen. Weitere Informationen zum Erstellen von Karten für Viva Connections Dashboard finden Sie unter Übersicht über botgestützte Erweiterungen für adaptive Karten.
Dieses Element ist ein Array von dashboardCard
Elementen des Typs object
.
dashboardCards.dashboardCard
Definiert eine einzelne Dashboard Karte und deren Eigenschaften.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
id |
String | ✔️ | Ein eindeutiger Bezeichner für diesen Dashboard Karte. ID muss eine GUID sein. | |
displayName |
Zeichenfolge | 255 Zeichen | ✔️ | Anzeigename des Karte. |
description |
String | 255 Zeichen | ✔️ | Beschreibung des Karte. |
pickerGroupId |
Zeichenfolge | ✔️ | ID der Gruppe in der Karte-Auswahl. ID muss eine GUID sein. | |
icon |
Objekt | Gibt das Symbol für die Karte an. | ||
contentSource |
Objekt | ✔️ | Gibt die Quelle des Inhalts des Karte an | |
defaultSize |
Zeichenfolge | ✔️ | Renderinggröße für die Dashboard Karte. Optionen: medium oder large . |
dashboardCards.dashboardCard.icon
Definiert die Symboleigenschaften eines bestimmten Dashboard Karte.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
iconUrl |
Zeichenfolge | 2048 Zeichen | Position des Symbols für die Karte, die in der Toolbox und Karte angezeigt werden soll. | |
officeUIFabricIconName |
String | 255 Zeichen | Der Anzeigename des Office UI Fabric- oder Fluent-UI-Symbols für die Karte. Dieser Wert wird verwendet, wenn iconUrl nicht angegeben ist. |
dashboardCards.dashboardCard.contentSource
Definiert die Inhaltsquelle einer bestimmten Dashboard Karte.
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
sourceType |
Zeichenfolge | Stellt die Quelle des Inhalts eines Karte dar. Option: bot . |
||
botConfiguration |
Objekt | Die Konfiguration für die Botquelle. Erforderlich, wenn auf sourceType festgelegt bot ist. |
dashboardCards.dashboardCard.contentSource.botConfiguration
Name | Typ | Maximale Größe | Erforderlich | Beschreibung |
---|---|---|---|---|
botId |
Zeichenfolge | Die eindeutige Microsoft-App-ID für den Bot, wie bei Bot Framework registriert. ID muss eine GUID sein. |
Erstellen einer App-Manifestdatei
Wenn Ihre App über keine App-Manifestdatei verfügt, müssen Sie sie erstellen.
So erstellen Sie eine App-Manifestdatei:
- Verwenden Sie das Beispielschema des App-Manifests , um eine .json-Datei zu erstellen.
- Speichern Sie diese im Stammverzeichnis Ihres Projektordners als
manifest.json
.
Hier sehen Sie ein Beispiel für das App-Manifestschema für eine Registerkarten-App mit aktiviertem SSO:
Hinweis
Der hier gezeigte App-Manifestbeispielinhalt gilt nur für eine Registerkarten-App. Es werden Beispielwerte für den Unterdomänen-URI verwendet. Weitere Informationen finden Sie unter Beispiel für das App-Manifestschema.
{
"$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}"
}
}