Referenz: Manifest-Schema für Microsoft TeamsReference: Manifest schema for Microsoft Teams

Das Microsoft Teams-Manifest beschreibt, wie die app in das Microsoft Teams-Produkt integriert wird.The Microsoft Teams manifest describes how the app integrates into the Microsoft Teams product. Das Manifest muss dem Schema entsprechen, das unter gehostet wird https://developer.microsoft.com/json-schemas/teams/v1.7/MicrosoftTeams.schema.json .Your manifest must conform to the schema hosted at https://developer.microsoft.com/json-schemas/teams/v1.7/MicrosoftTeams.schema.json. Frühere Versionen 1.0-1.6 werden ebenfalls unterstützt (mit "v1. x" in der URL).Previous versions 1.0-1.6 are also supported (using "v1.x" in the URL).

Das folgende Schemabeispiel zeigt alle Erweiterungsoptionen.The following schema sample shows all extensibility options.

Vollständiges Beispiel ManifestSample full manifest

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

Das Schema definiert die folgenden Eigenschaften:The schema defines the following properties:

$schema$schema

Optional, jedoch empfohlen – ZeichenfolgeOptional, but recommended — string

Die https://-URL, die auf das JSON-Schema für das Manifest verweist.The https:// URL referencing the JSON Schema for the manifest.

manifestVersionmanifestVersion

Erforderlich – ZeichenfolgeRequired — string

Die Version des manifest-Schemas, die dieses Manifest verwendet.The version of the manifest schema this manifest is using. Es sollte "1,7" sein.It should be "1.7".

Versionversion

Erforderlich – ZeichenfolgeRequired — string

Die Version der jeweiligen App.The version of the specific app. Wenn Sie etwas in ihrem Manifest aktualisieren, muss die Version ebenfalls inkrementiert werden.If you update something in your manifest, the version must be incremented as well. Auf diese Weise wird bei der Installation des neuen Manifests das vorhandene überschrieben, und der Benutzer erhält die neue Funktionalität.This way, when the new manifest is installed, it will overwrite the existing one and the user will get the new functionality. Wenn diese APP an den Store übermittelt wurde, muss das neue Manifest erneut übermittelt und erneut validiert werden.If this app was submitted to the store, the new manifest will have to be re-submitted and re-validated. Dann erhalten Benutzer dieser APP das neue aktualisierte Manifest automatisch in ein paar Stunden, nachdem es genehmigt wurde.Then, users of this app will get the new updated manifest automatically in a few hours, after it is approved.

Wenn sich die angeforderte APP geändert hat, werden die Benutzer aufgefordert, die APP zu aktualisieren und erneut zu genehmigen.If the app requested permissions change, users will be prompted to upgrade and re-consent to the app.

Diese Versionszeichenfolge muss dem semver -Standard (Major) entsprechen. Moll. Patch).This version string must follow the semver standard (MAJOR.MINOR.PATCH).

idid

Erforderlich – Microsoft App-IDRequired — Microsoft app ID

Der eindeutige von Microsoft generierte Bezeichner für diese APP.The unique Microsoft-generated identifier for this app. Wenn Sie einen bot über das Microsoft bot-Framework registriert haben oder sich die Webanwendung Ihrer Registerkarte bereits bei Microsoft anmeldet, sollten Sie bereits über eine ID verfügen und diese hier eingeben.If you have registered a bot via the Microsoft Bot Framework, or your tab's web app already signs in with Microsoft, you should already have an ID and should enter it here. Andernfalls sollten Sie eine neue ID im Microsoft-Anwendungs Registrierungs Portal (meine Anwendungen) generieren, Sie hier eingeben und dann wieder verwenden, wenn Sie einen bot hinzufügen. Hinweis: Wenn Sie ein Update an Ihre vorhandene app in AppSource übermitteln, darf die ID in ihrem Manifest nicht geändert werden.Otherwise, you should generate a new ID at the Microsoft Application Registration Portal (My Applications), enter it here, and then reuse it when you add a bot.Note: If you are submitting an update to your existing app in AppSource, the ID in your manifest must not be modified.

developerdeveloper

Erforderlich – ObjektRequired — object

Gibt Informationen zu Ihrem Unternehmen an.Specifies information about your company. Für an AppSource übermittelte Apps (ehemals Office Store) müssen diese Werte mit den Informationen in Ihrem AppSource-Eintrag übereinstimmen.For apps submitted to AppSource (formerly Office Store), these values must match the information in your AppSource entry. Weitere Informationen finden Sie in unseren Veröffentlichungsrichtlinien .See our publishing guidelines for additional information.

NameName Maximale GrößeMaximum size ErforderlichRequired BeschreibungDescription
name 32 Zeichen32 characters Der Anzeigename für den Entwickler.The display name for the developer.
websiteUrl 2048 Zeichen2048 characters Die https://-URL zur Website des Entwicklers.The https:// URL to the developer's website. Dieser Link sollte Benutzer zu Ihrer Firma oder produktspezifischen Zielseite führen.This link should take users to your company or product-specific landing page.
privacyUrl 2048 Zeichen2048 characters Die https://-URL zur Datenschutzrichtlinie des Entwicklers.The https:// URL to the developer's privacy policy.
termsOfUseUrl 2048 Zeichen2048 characters Die https://-URL zu den Nutzungsbedingungen des Entwicklers.The https:// URL to the developer's terms of use.
mpnId 10 Zeichen10 characters Optional Die Microsoft Partner-Netzwerk-ID, die die Partnerorganisation identifiziert, die die APP aufbaut.Optional The Microsoft Partner Network ID that identifies the partner organization building the app.

namename

Erforderlich – ObjektRequired — object

Der Name der APP-Erfahrung, der Benutzern in der Microsoft Teams-Benutzeroberfläche angezeigt wird.The name of your app experience, displayed to users in the Teams experience. Für apps, die an AppSource übermittelt werden, müssen diese Werte mit den Informationen in Ihrem AppSource-Eintrag übereinstimmen.For apps submitted to AppSource, these values must match the information in your AppSource entry. Die Werte von short und full sollten nicht identisch sein.The values of short and full should not be the same.

NameName Maximale GrößeMaximum size ErforderlichRequired BeschreibungDescription
short 30 Zeichen30 characters Der kurze Anzeigename für die app.The short display name for the app.
full 100 Zeichen100 characters Der vollständige Name der APP, der verwendet wird, wenn der vollständige App-Name 30 Zeichen überschreitet.The full name of the app, used if the full app name exceeds 30 characters.

descriptiondescription

Erforderlich – ObjektRequired — object

Beschreibt die APP für Benutzer.Describes your app to users. Für apps, die an AppSource übermittelt werden, müssen diese Werte mit den Informationen in Ihrem AppSource-Eintrag übereinstimmen.For apps submitted to AppSource, these values must match the information in your AppSource entry.

Stellen Sie sicher, dass Ihre Beschreibung ihre Erfahrung genau beschreibt und Informationen bereitstellt, um potenziellen Kunden zu helfen, ihre Erfahrungen zu verstehen.Ensure that your description accurately describes your experience and provides information to help potential customers understand what your experience does. Beachten Sie auch, dass in der vollständigen Beschreibung ein externes Konto zur Verwendung benötigt wird.You should also note, in the full description, if an external account is required for use. Die Werte von short und full sollten nicht identisch sein.The values of short and full should not be the same. Ihre Kurzbeschreibung darf nicht innerhalb der langen Beschreibung wiederholt werden und darf keinen anderen APP-Namen enthalten.Your short description must not be repeated within the long description and must not include any other app name.

NameName Maximale GrößeMaximum size ErforderlichRequired BeschreibungDescription
short 80 Zeichen80 characters Eine kurze Beschreibung Ihrer APP-Erfahrung, die verwendet wird, wenn der Speicherplatz limitiert ist.A short description of your app experience, used when space is limited.
full 4000 Zeichen4000 characters Die vollständige Beschreibung Ihrer APP.The full description of your app.

PackageNamepackageName

Optional – ZeichenfolgeOptional — string

Ein eindeutiger Bezeichner für diese APP in umgekehrter Domänen Notation; Beispiel: com. Beispiel. MyApp.A unique identifier for this app in reverse domain notation; for example, com.example.myapp. Maximale Länge: 64 Zeichen.Maximum length: 64 characters.

localizationInfolocalizationInfo

Optional – ObjektOptional — object

Ermöglicht die Angabe einer Standardsprache sowie Zeiger auf zusätzliche Sprachdateien.Allows the specification of a default language, as well as pointers to additional language files. Siehe Lokalisierung.See localization.

NameName Maximale GrößeMaximum size ErforderlichRequired BeschreibungDescription
defaultLanguageTag Das Language-Tag der Zeichenfolgen in dieser Manifestdatei der obersten Ebene.The language tag of the strings in this top level manifest file.

localizationInfo.additionalLanguageslocalizationInfo.additionalLanguages

Ein Array von Objekten, das zusätzliche Sprachübersetzungen angibt.An array of objects specifying additional language translations.

NameName Maximale GrößeMaximum size ErforderlichRequired BeschreibungDescription
languageTag Das Language-Tag der Zeichenfolgen in der bereitgestellten Datei.The language tag of the strings in the provided file.
file Ein relativer Dateipfad zu einer JSON-Datei, die die übersetzten Zeichenfolgen enthält.A relative file path to a the .json file containing the translated strings.

Symboleicons

Erforderlich – ObjektRequired — object

Symbole, die in der Teams-App verwendet werden.Icons used within the Teams app. Die Symboldateien müssen als Teil des Upload-Pakets enthalten sein.The icon files must be included as part of the upload package. Weitere Informationen finden Sie unter Icons .See Icons for more information.

NameName Maximale GrößeMaximum size ErforderlichRequired BeschreibungDescription
outline 32 x 32 Pixel32 x 32 pixels Ein relativer Dateipfad zu einem transparenten 32x32 PNG-Gliederungssymbol.A relative file path to a transparent 32x32 PNG outline icon.
color 192 x 192 Pixel192 x 192 pixels Ein relativer Dateipfad zu einem vollfarbigen 192x192 PNG-Symbol.A relative file path to a full color 192x192 PNG icon.

accentColoraccentColor

Optional – HTML-Hex-FarbcodeOptional — HTML Hex color code

Eine Farbe, die in Verbindung mit und als Hintergrund für die Gliederungssymbole verwendet werden soll.A color to use in conjunction with and as a background for your outline icons.

Der Wert muss ein gültiger HTML-Farb Code sein, der mit "#" beginnt, beispielsweise #4464ee .The value must be a valid HTML color code starting with '#', for example #4464ee.

configurableTabsconfigurableTabs

Optional – ArrayOptional — array

Wird verwendet, wenn Ihre APP-Erfahrung eine Team Kanal-registerkartenoberfläche aufweist, die eine zusätzliche Konfiguration erfordert, bevor Sie hinzugefügt wird.Used when your app experience has a team channel tab experience that requires extra configuration before it is added. Konfigurierbare Registerkarten werden nur im Bereich Teams (nicht persönlich) unterstützt, und derzeit wird nur eine Registerkarte pro App unterstützt.Configurable tabs are supported only in the teams scope (not personal), and currently only one tab per app is supported.

NameName TypType Maximale GrößeMaximum size ErforderlichRequired BeschreibungDescription
configurationUrl stringstring 2048 Zeichen2048 characters Die https://-URL, die beim Konfigurieren der Registerkarte verwendet werden soll.The https:// URL to use when configuring the tab.
scopes Array von Enumerationenarray of enum 11 Derzeit unterstützen konfigurierbare Registerkarten nur die team groupchat Bereiche und.Currently, configurable tabs support only the team and groupchat scopes.
canUpdateConfiguration Boolescher Wertboolean Ein Wert, der angibt, ob eine Instanz der Konfiguration der Registerkarte nach der Erstellung vom Benutzer aktualisiert werden kann.A value indicating whether an instance of the tab's configuration can be updated by the user after creation. Default: true.Default: true.
sharePointPreviewImage Zeichenfolgestring 20482048 Ein relativer Dateipfad zu einem Vorschaubild für die Registerkarte für die Verwendung in SharePoint.A relative file path to a tab preview image for use in SharePoint. Größe 1024x768.Size 1024x768.
supportedSharePointHosts Array von Enumerationenarray of enum 11 Definiert, wie die Registerkarte in SharePoint zur Verfügung gestellt wird.Defines how your tab will be made available in SharePoint. Optionen sind sharePointFullPage und sharePointWebPartOptions are sharePointFullPage and sharePointWebPart

staticTabsstaticTabs

Optional – ArrayOptional — array

Definiert eine Gruppe von Registerkarten, die standardmäßig "fixiert" werden können, ohne dass der Benutzer Sie manuell hinzufügt.Defines a set of tabs that can be "pinned" by default, without the user adding them manually. Im Bereich deklarierte statische Registerkarten personal werden immer an die persönliche Benutzeroberfläche der APP angeheftet.Static tabs declared in personal scope are always pinned to the app's personal experience. Im Bereich deklarierte statische Registerkarten team werden derzeit nicht unterstützt.Static tabs declared in the team scope are currently not supported.

Dieses Element ist ein Array (maximal 16 Elemente) mit allen Elementen des Typs object .This item is an array (maximum of 16 elements) with all elements of the type object. Dieser Block ist nur für Lösungen erforderlich, die eine statische Registerkarten Lösung bereitstellen.This block is required only for solutions that provide a static tab solution.

NameName TypType Maximale GrößeMaximum size ErforderlichRequired BeschreibungDescription
entityId stringstring 64 Zeichen64 characters Ein eindeutiger Bezeichner für die Entität, die auf der Registerkarte angezeigt wird.A unique identifier for the entity that the tab displays.
name Zeichenfolgestring 128 Zeichen128 characters Der Anzeigename der Registerkarte in der Kanalschnittstelle.The display name of the tab in the channel interface.
contentUrl Zeichenfolgestring 2048 Zeichen2048 characters Die https://-URL, die auf die Benutzeroberfläche der Entität zeigt, die im Canvas "Teams" angezeigt werden soll.The https:// URL that points to the entity UI to be displayed in the Teams canvas.
websiteUrl Zeichenfolgestring 2048 Zeichen2048 characters Die https://-URL, auf die verwiesen wird, wenn ein Benutzer sich für die Anzeige in einem Browser entscheidet.The https:// URL to point at if a user opts to view in a browser.
scopes Array von Enumerationenarray of enum 11 Derzeit unterstützen statische Registerkarten nur den personal Bereich, was bedeutet, dass Sie nur als Teil der persönlichen Benutzeroberfläche vorgesehen werden kann.Currently, static tabs support only the personal scope, which means it can be provisioned only as part of the personal experience.

Hinweis

Wenn auf Ihren Registerkartenkontext abhängige Informationen zum Anzeigen relevanter Inhalte oder zum Initiieren eines Authentifizierungs Flusses erforderlich sind, Lesen Sie den Bereich Kontext für Ihre Microsoft Teams-Registerkarte abrufen.If your tabs require context-dependent information to display relevant content or for initiating an authentication flow, see Get context for your Microsoft Teams tab.

Botsbots

Optional – ArrayOptional — array

Definiert eine bot-Lösung zusammen mit optionalen Informationen wie Standardbefehls Eigenschaften.Defines a bot solution, along with optional information such as default command properties.

Das Element ist ein Array (Maximum von nur 1 Element — , das derzeit nur ein bot pro App zulässig ist) mit allen Elementen des Typs object .The item is an array (maximum of only 1 element—currently only one bot is allowed per app) with all elements of the type object. Dieser Block ist nur für Lösungen erforderlich, die eine bot-Erfahrung bieten.This block is required only for solutions that provide a bot experience.

NameName TypType Maximale GrößeMaximum size ErforderlichRequired BeschreibungDescription
botId stringstring 64 Zeichen64 characters Die eindeutige Microsoft-App-ID für den Bot, wie bei Bot Framework registriert.The unique Microsoft app ID for the bot as registered with the Bot Framework. Dies kann auch die gesamte App-IDentsprechen.This may well be the same as the overall app ID.
scopes Array von Enumerationenarray of enum 33 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).Specifies whether the bot offers an experience in the context of a channel in a team, in a group chat (groupchat), or an experience scoped to an individual user alone (personal). Diese Optionen sind nicht exklusiv.These options are non-exclusive.
needsChannelSelector Boolescher Wertboolean Beschreibt, ob der Bot einen Benutzerhinweis verwendet, um den Bot einem bestimmten Kanal hinzuzufügen.Describes whether or not the bot utilizes a user hint to add the bot to a specific channel. Standard falseDefault: false
isNotificationOnly Boolescher Wertboolean Gibt an, ob ein Bot ein unidirektionaler Bot ausschließlich für Benachrichtigungen ist (im Gegensatz zu einem dialogorientierten Bot).Indicates whether a bot is a one-way, notification-only bot, as opposed to a conversational bot. Standard **false**Default: **false**
supportsFiles Boolescher Wertboolean Gibt an, ob der Bot die Möglichkeit zum Hochladen/Herunterladen von Dateien in persönliche Chats unterstützt.Indicates whether the bot supports the ability to upload/download files in personal chat. Standard falseDefault: false

Bots. commandListsbots.commandLists

Eine optionale Liste von Befehlen, die ihr bot Benutzern empfehlen kann.An optional list of commands that your bot can recommend to users. Das Objekt ist ein Array (Maximum von 2 Elementen) mit allen Elementen des Typs object ; Sie müssen für jeden Bereich, den Ihr bot unterstützt, eine separate Befehlsliste definieren.The object is an array (maximum of 2 elements) with all elements of type object; you must define a separate command list for each scope that your bot supports. Weitere Informationen finden Sie unter bot-Menüs .See Bot menus for more information.

NameName TypType Maximale GrößeMaximum size ErforderlichRequired BeschreibungDescription
items.scopes Array von Enumerationenarray of enum 33 Gibt den Bereich an, für den die Befehlsliste gültig ist.Specifies the scope for which the command list is valid. Mögliche Optionen sind team, personal und groupchat.Options are team, personal, and groupchat.
items.commands Array von Objektenarray of objects 10 10 Ein Array von Befehlen, die der Bot unterstützt:An array of commands the bot supports:
title: Name des Bot-Befehls (string, 32)title: the bot command name (string, 32)
description: einfache Beschreibung oder Beispiel für die Befehlssyntax und zugehörige Argumente (string, 128)description: a simple description or example of the command syntax and its argument (string, 128)

Bots. commandLists. Commandsbots.commandLists.commands

NameName TypType Maximale GrößeMaximum size ErforderlichRequired BeschreibungDescription
titletitle stringstring 12 12 Der Name des bot-BefehlsThe bot command name
descriptiondescription Zeichenfolgestring 128 Zeichen128 characters Eine einfache Textbeschreibung oder ein Beispiel für die Befehlssyntax und ihre Argumente.A simple text description or an example of the command syntax and its arguments.

Connectorsconnectors

Optional – ArrayOptional — array

Der connectors Block definiert einen Office 365-Konnektor für die app.The connectors block defines an Office 365 Connector for the app.

Das Objekt ist ein Array (Maximum of 1-Element) mit allen Elementen des Typs object .The object is an array (maximum of 1 element) with all elements of type object. Dieser Block ist nur für Lösungen erforderlich, die einen Connector bereitstellen.This block is required only for solutions that provide a Connector.

NameName TypType Maximale GrößeMaximum size ErforderlichRequired BeschreibungDescription
configurationUrl stringstring 2048 Zeichen2048 characters Die https://-URL, die beim Konfigurieren des Connectors verwendet werden soll.The https:// URL to use when configuring the connector.
scopes Array von Enumerationenarray of enum 11 Gibt an, ob der Connector eine Erfahrung im Kontext eines Kanals in a bietet team oder ein Erlebnis, das allein auf einen einzelnen Benutzer beschränkt ist ( personal ).Specifies whether the Connector offers an experience in the context of a channel in a team, or an experience scoped to an individual user alone (personal). Derzeit wird nur der team Bereich unterstützt.Currently, only the team scope is supported.
connectorId Zeichenfolgestring 64 Zeichen64 characters Ein eindeutiger Bezeichner für den Connector, der seiner ID im Entwickler Dashboard für Connectorsentspricht.A unique identifier for the Connector that matches its ID in the Connectors Developer Dashboard.

composeExtensionscomposeExtensions

Optional – ArrayOptional — array

Definiert eine Messaging Erweiterung für die app.Defines a messaging extension for the app.

Hinweis

Der Name des Features wurde von "Erstell Erweiterung" in "Messaging Extension" im November 2017 geändert, aber der Manifestname bleibt unverändert, sodass vorhandene Erweiterungen weiterhin funktionieren.The name of the feature was changed from "compose extension" to "messaging extension" in November, 2017, but the manifest name remains the same so that existing extensions continue to function.

Das Element ist ein Array (Maximum of 1-Element) mit allen Elementen des Typs object .The item is an array (maximum of 1 element) with all elements of type object. Dieser Block ist nur für Lösungen erforderlich, die eine Messaging Erweiterung bereitstellen.This block is required only for solutions that provide a messaging extension.

NameName TypType Maximale GrößeMaximum Size ErforderlichRequired BeschreibungDescription
botId stringstring 6464 Die eindeutige Microsoft-App-ID für den bot, der die Messaging Erweiterung unterstützt, wie Sie mit dem bot-Framework registriert wurde.The unique Microsoft app ID for the bot that backs the messaging extension, as registered with the Bot Framework. Dies kann auch die gesamte APP-ID entsprechen.This may well be the same as the overall App ID.
commands Array von Objektenarray of objects 10 10 Array von Befehlen, die von der Messaging-Erweiterung unterstützt werdenarray of commands the messaging extension supports
canUpdateConfiguration Boolescher Wertboolean Ein Wert, der angibt, ob die Konfiguration einer Messaging Erweiterung vom Benutzer aktualisiert werden kann.A value indicating whether the configuration of a messaging extension can be updated by the user. Standard: False.Default: false.
messageHandlers Array von Objektenarray of Objects 5 5 Eine Liste von Handlern, mit denen apps aufgerufen werden können, wenn bestimmte Bedingungen erfüllt sind.A list of handlers that allow apps to be invoked when certain conditions are met. Domänen müssen ebenfalls in aufgeführt sein. validDomainsDomains must also be listed in validDomains
messageHandlers.type Zeichenfolgestring Der Typ des Nachrichten Handlers.The type of message handler. Muss "link" sein.Must be "link".
messageHandlers.value.domains Array von Zeichenfolgenarray of Strings Array von Domänen, für die der Link Nachrichtenhandler registriert werden kann.array of domains that the link message handler can register for.

composeExtensions. CommandscomposeExtensions.commands

Ihre Messaging Erweiterung sollte einen oder mehrere Befehle deklarieren.Your messaging extension should declare one or more commands. Jeder Befehl wird in Microsoft Teams als potenzielle Interaktion aus dem Benutzeroberflächen basierten Einstiegspfad angezeigt.Each command appears in Microsoft Teams as a potential interaction from the UI-based entry point. Es gibt maximal 10 Befehle.There is a maximum of 10 commands.

Jedes Command-Element ist ein Objekt mit der folgenden Struktur:Each command item is an object with the following structure:

NameName TypType Maximale GrößeMaximum size ErforderlichRequired BeschreibungDescription
id stringstring 64 Zeichen64 characters Die ID für den Befehl.The ID for the command.
title Zeichenfolgestring 32 Zeichen32 characters Der benutzerfreundliche Befehlsname.The user-friendly command name.
type Zeichenfolgestring 64 Zeichen64 characters Der Typ des Befehls.Type of the command. Einer von query oder action .One of query or action. Standard: Query.Default: query.
description Zeichenfolgestring 128 Zeichen128 characters Die Beschreibung, die den Benutzern angezeigt wird, um den Zweck dieses Befehls anzugeben.The description that appears to users to indicate the purpose of this command.
initialRun Boolescher Wertboolean Ein boolescher Wert, der angibt, ob der Befehl anfänglich ohne Parameter ausgeführt werden soll.A boolean value that indicates whether the command should be run initially with no parameters. Standard: False.Default: false.
context Array von Zeichenfolgenarray of Strings 33 Definiert, woher die Nachrichten Erweiterung aufgerufen werden kann.Defines where the message extension can be invoked from. Eine beliebige Kombination von compose , commandBox , message .Any combination ofcompose,commandBox,message . Der Standardwert ist ["compose","commandBox"].Default is ["compose","commandBox"].
fetchTask Boolescher Wertboolean Ein boolescher Wert, der angibt, ob das Aufgabenmodul dynamisch abgerufen werden soll.A boolean value that indicates if it should fetch the task module dynamically. Standard: False.Default: false.
taskInfo Objektobject Geben Sie das Aufgabenmodul an, das beim Verwenden eines Messaging Erweiterungs Befehls vorab zu laden ist.Specify the task module to pre-load when using a messaging extension command.
taskInfo.title Zeichenfolgestring 64 Zeichen64 characters Ursprünglicher Dialogtitel.Initial dialog title.
taskInfo.width Zeichenfolgestring Dialog Breite-entweder eine Zahl in Pixel oder ein Standardlayout wie "Large", "Medium" oder "Small".Dialog width - either a number in pixels or default layout such as 'large', 'medium', or 'small'.
taskInfo.height Zeichenfolgestring Dialog Feld Höhe: entweder eine Zahl in Pixel oder ein Standardlayout wie "Large", "Medium" oder "Small".Dialog height - either a number in pixels or default layout such as 'large', 'medium', or 'small'.
taskInfo.url Zeichenfolgestring Anfängliche WebView-URL.Initial webview URL.
parameters Array von Objectarray of object 5 Elemente5 items Die Liste der Parameter, die der Befehl benötigt.The list of parameters the command takes. Minimum: 1; Maximum: 5.Minimum: 1; maximum: 5.
parameters.name Zeichenfolgestring 64 Zeichen64 characters Der Name des Parameters, wie er im Client angezeigt wird.The name of the parameter as it appears in the client. Dies ist in der Benutzeranforderung enthalten.This is included in the user request.
parameters.title Zeichenfolgestring 32 Zeichen32 characters Benutzerfreundlicher Titel für den Parameter.User-friendly title for the parameter.
parameters.description Zeichenfolgestring 128 Zeichen128 characters Benutzerfreundliche Zeichenfolge, die den Zweck dieses Parameters beschreibt.User-friendly string that describes this parameter’s purpose.
parameters.value Zeichenfolgestring 512 Zeichen512 characters Anfangswert für den Parameter.Initial value for the parameter.
parameters.inputType Zeichenfolgestring 128 Zeichen128 characters Definiert den Typ des Steuerelements, das in einem Aufgabenmodul für angezeigt wird fetchTask: true .Defines the type of control displayed on a task module forfetchTask: true . Einer von text, textarea, number, date, time, toggle, choiceset .One of text, textarea, number, date, time, toggle, choiceset .
parameters.choices Array von Objektenarray of objects 10 Elemente10 items Die Auswahloptionen für choiceset .The choice options for thechoiceset. Nur verwenden parameter.inputType , wenn ist choiceset .Use only whenparameter.inputType is choiceset.
parameters.choices.title Zeichenfolgestring 128 Zeichen128 characters Titel der Auswahl.Title of the choice.
parameters.choices.value Zeichenfolgestring 512 Zeichen512 characters Value of the choice.Value of the choice.

Berechtigungenpermissions

Optional – Array von ZeichenfolgenOptional — array of strings

Ein Array, das string angibt, welche Berechtigungen die APP anfordert, sodass Endbenutzer wissen, wie die Erweiterung ausgeführt wird.An array of string which specifies which permissions the app requests, which lets end users know how the extension will perform. Die folgenden Optionen sind nicht exklusiv:The following options are non-exclusive:

  • identity Erfordert Benutzeridentitätsinformationenidentity   Requires user identity information
  • messageTeamMembers Erfordert die Berechtigung zum Senden von direkten Nachrichten an Teammitglieder.messageTeamMembers   Requires permission to send direct messages to team members

Wenn Sie diese Berechtigungen beim Aktualisieren Ihrer APP ändern, werden die Benutzer beim ersten Ausführen der aktualisierten App den Zustimmungsprozess wiederholen.Changing these permissions when updating your app will cause your users to repeat the consent process the first time they run the updated app. Weitere Informationen finden Sie unter Aktualisieren Ihrer APP .See Updating your app for more information.

devicePermissionsdevicePermissions

Optional – Array von ZeichenfolgenOptional — array of strings

Gibt die systemeigenen Funktionen auf dem Gerät eines Benutzers an, für die Ihre APP möglicherweise Zugriff anfordern kann.Specifies the native features on a user's device that your app may request access to. Mögliche Optionen sind:Options are:

  • geolocation
  • media
  • notifications
  • midi
  • openExternal

validDomainsvalidDomains

Optional, sofern angegeben, außer erforderlichOptional, except Required where noted

Eine Liste gültiger Domänen für Websites, die von der APP im Microsoft Teams-Client zu laden erwartet werden.A list of valid domains for websites the app expects to load within the Teams client. Domänen Auflistungen können beispielsweise Platzhalterzeichen enthalten *.example.com .Domain listings can include wildcards, for example *.example.com. Dies entspricht genau einem Segment der Domäne. Wenn Sie eine Übereinstimmung benötigen, a.b.example.com verwenden Sie *.*.example.com .This matches exactly one segment of the domain; if you need to match a.b.example.com then use *.*.example.com. Wenn Ihre Registerkartenkonfiguration oder Inhalts-UI neben einer Verwendung für die Registerkartenkonfiguration zu einer anderen Domäne navigieren muss, muss diese Domäne hier angegeben werden.If your tab configuration or content UI needs to navigate to any other domain besides the one use for tab configuration, that domain must be specified here.

Es ist jedoch nicht erforderlich, die Domänen von Identitätsanbietern einzubeziehen, die Sie in Ihrer APP unterstützen möchten.It is not necessary to include the domains of identity providers you want to support in your app, however. Um beispielsweise mit einer Google-ID zu authentifizieren, müssen Sie zu Accounts.Google.com umgeleitet werden, aber Sie sollten Accounts.Google.com nicht in einschließen validDomains[] .For example, to authenticate using a Google ID, it's necessary to redirect to accounts.google.com, but you should not include accounts.google.com in validDomains[].

Microsoft Teams-apps, die ihre eigenen SharePoint-URLs benötigen, um gut zu funktionieren, können "{teamsitedomain}" in Ihre gültige Domänenliste einschließen.Teams apps that require their own sharepoint URLs to function well, may include "{teamsitedomain}" in their valid domain list.

Wichtig

Fügen Sie keine Domänen hinzu, die sich außerhalb des Steuerelements befinden, entweder direkt oder über Platzhalter.Do not add domains that are outside your control, either directly or via wildcards. Beispielsweise yourapp.onmicrosoft.com ist gültig, jedoch ungültig *.onmicrosoft.com .For example, yourapp.onmicrosoft.com is valid, but *.onmicrosoft.com is not valid.

Das Objekt ist ein Array mit allen Elementen des Typs string .The object is an array with all elements of the type string.

webApplicationInfowebApplicationInfo

Optional – ObjektOptional — object

Geben Sie Ihre Aad-APP-ID und Diagramm Informationen an, damit Benutzer sich nahtlos bei ihrer Aad-App anmelden können.Specify your AAD App ID and Graph information to help users seamlessly sign into your AAD app.

NameName TypType Maximale GrößeMaximum size ErforderlichRequired BeschreibungDescription
id stringstring 36 Zeichen36 characters Aad-Anwendungs-ID der app.AAD application id of the app. Diese ID muss eine GUID sein.This id must be a GUID.
resource Zeichenfolgestring 2048 Zeichen2048 characters Ressourcen-URL der APP zum Abrufen des Authentifizierungstokens für SSO.Resource url of app for acquiring auth token for SSO.
applicationPermissions array of stringsarray of strings 128 Zeichen128 characters Angeben einer detaillierten ressourcenspezifischen ZustimmungSpecify granular resource specific consent

showLoadingIndicatorshowLoadingIndicator

Optional – BooleanOptional — boolean

Geben Sie an, ob der Lade Indikator angezeigt werden soll, wenn eine APP/Registerkarte geladen wird.Indicate whether or not to show the loading indicator when an app/tab is loading. Standard: False.Default: false.

Hinweis

Wenn Sie "showLoadingIndicator: true" in Ihrem App-Manifest festgelegt haben, müssen Sie die Inhaltsseiten ihrer Registerkarten und Aufgaben Module gemäß dem in Anzeigen eines systemeigenen Lade Indikator Dokuments beschriebenen Protokoll ändern.If you set "showLoadingIndicator : true" in your app manifest, then for the page to load correctly, you must modify the content pages of your tabs and task modules as per the protocol described in Show a native loading indicator document.

isFullScreenisFullScreen

Optional – BooleanOptional — boolean

Geben Sie an, wo eine persönliche App mit oder ohne Registerkarten Kopfleiste gerendert wird.Indicate where a personal app is rendered with or without a tab-header bar. Standard: False.Default: false.

Aktivitätenactivities

Optional – ObjektOptional — object

Definieren Sie die Eigenschaften, die Ihre APP für die Bereitstellung in einem Benutzer Aktivitätsfeed verwenden wird.Define the properties your app will use to post to a user activity feed.

NameName TypType Maximale GrößeMaximum size ErforderlichRequired BeschreibungDescription
activityTypes Array von Objektenarray of Objects 128 Elemente128 items Geben Sie die Arten von Aktivitäten an, die Ihre APP an einen Benutzer-Aktivitätsfeed senden kann.Specify the types of activities that your app can post to a users activity feed.

Activities. activityTypesactivities.activityTypes

NameName TypType Maximale GrößeMaximum size ErforderlichRequired BeschreibungDescription
type stringstring 32 Zeichen32 characters Der Typ der Benachrichtigung.The notification type. Siehe weiter unten.See below.
description Zeichenfolgestring 128 Zeichen128 characters Eine kurze Beschreibung der Benachrichtigung.A brief description of the notification. Siehe weiter unten.See below.
templateText Zeichenfolgestring 128 Zeichen128 characters Ex: "{Akteur} hat Aufgabe {Task-Nr} für dich erstellt"Ex: "{actor} created task {taskId} for you"
{
   "activities":{
      "activityTypes":[
         {
            "type":"taskCreated",
            "description":"Task Created Activity",
            "templateText":"{actor} created task {taskId} for you"
         },
         {
            "type":"teamMention",
            "description":"Team Mention Activity",
            "templateText":"{actor} mentioned team"
         },
         {
            "type":"channelMention",
            "description":"Channel Mention Activity",
            "templateText":"{actor} mentioned channel"
         },
         {
            "type":"userMention",
            "description":"Personal Mention Activity",
            "templateText":"{actor} mentioned user"
         },
         {
            "type":"calendarForward",
            "description":"Forwarding a Calendar Event",
            "templateText":"{actor} sent user an invite on behalf of {eventOwner}"
         },
         {
            "type":"calendarForward",
            "description":"Forwarding a Calendar Event",
            "templateText":"{actor} sent user an invite on behalf of {eventOwner}"
         },
         {
            "type":"creatorTaskCreated",
            "description":"Created Task Created",
            "templateText":"The Creator created task {taskId} for you"
         }
      ]
   }
}