Bereitstellungsoptionen für SharePoint-Framework-Lösungen für Microsoft Teams

Entwicklern stehen bei der Bereitstellung von SharePoint-Framework-Lösungen (SPFx) für die Verwendung innerhalb von Microsoft Teams mehrere Optionen zur Verfügung. In diesem Artikel werden die in SharePoint Online unterstützten Optionen erläutert.

Hinweis

Vor Januar 2021 unterstützte SharePoint Online nur eine Option: Wurde eine qualifizierte SPFx-Lösung in den App-Katalog des SharePoint-Mandanten hochgeladen, wurde die Schaltfläche Mit Teams synchronisieren im Menüband des App-Katalogs des Mandanten angezeigt.

SharePoint Online unterstützt zwei Optionen für die Bereitstellung von SPFx-Lösungen für den Microsoft Teams-App Store:

  1. Automatisches Erstellen des Microsoft Teams-App-Manifests und -Pakets
  2. Verwenden des vom Entwickler bereitgestellten Microsoft Teams-App-Manifestpakets &

Automatisches Erstellen des Microsoft Teams-App-Manifests und -Pakets

Diese Funktion ist ideal geeignet für einfache Implementierungen, um sie in Microsoft Teams automatisch verfügbar zu machen.

In diesem Szenario wird beim Hochladen einer SPFx-Lösung in den App-Katalog des SharePoint Online-Mandanten die Schaltfläche Mit Teams synchronisieren im Menüband aktiviert, wenn die Lösung Komponenten für Microsoft Teams enthält.

Mit Teams synchronisieren

Mit dieser Schaltfläche wird der folgende Prozess in SharePoint Online gestartet:

  1. SharePoint erstellt die Manifestdatei der Microsoft Teams-App dynamisch
  2. SharePoint erstellt das Microsoft Teams-App-Paket dynamisch
  3. SharePoint stellt das generierte Microsoft Teams-App-Paket im Microsoft Teams-App-Store des Mandanten bereit

Wenn SharePoint das App-Manifest erstellt, verwendet es bei der Generierung einiger Namen Werte aus der SPFx-Lösung. In der folgenden Tabelle sind die Eigenschaften in der Manifestdatei der Microsoft Teams-App und die Werte, auf die diese Eigenschaften festgelegt sind, aufgeführt.

Hinweis

Weitere Details zum App-Manifest finden Sie unter folgendem Link in der Microsoft Teams-Dokumentation: Manifestschema für Microsoft Teams.

manifest.json-Eigenschaft Eigenschaft im SPFx-Komponentenmanifest
packageName alias
id id
name.short preconfiguredEntries[0].title
description.short preconfiguredEntries[0].description
description.long preconfiguredEntries[0].description

Hinweis

Das Komponentenmanifest wird aus dem Manifest der Komponente abgerufen (./src/webparts/.. /*.manifest.json).

Wenn eine SPFx-Lösung mehrere Webparts enthält, die für die Verwendung in Microsoft Teams vorgesehen sind, wiederholt SharePoint Online den oben beschriebenen Prozess für jedes dieser Webparts.

Hinweis

Wenn Sie sich für die generierte Paketstruktur interessieren, können Sie die folgende REST-API verwenden, um das Paket für bestimmte Lösungen herunterzuladen:

_api/web/tenantappcatalog/downloadteamssolution(id)/$value

id ist der numerische Bezeichner der Lösung in der App-Katalogbibliothek.

Sie können diese API im Kontext Ihres App-Katalogs anfordern, z. B. mit der URL von https://[yourtenant]].sharepoint.com/sites/appcatalog/_api/web/tenantappcatalog/downloadteamssolution(12)/$value. Der API-Aufruf startet den Downloadprozess des generierten Manifestpakets.

Vom Entwickler bereitgestelltes Microsoft Teams-App-Manifestpaket &

Wenn Sie mehr Kontrolle über das Microsoft Teams-App-Manifest oder -App-Paket benötigen, können Sie Ihr eigenes Paket erstellen. Wenn in diesem Fall ein Administrator die Schaltfläche Mit Teams synchronisieren auswählt, sucht SharePoint Online in der Datei *.sppkg nach der folgenden Datei: ./teams/TeamsSPFxApp.zip.

Wenn diese Datei vorhanden ist, wird sie von SharePoint Online im Microsoft Teams-App-Store des Mandanten bereitgestellt, anstatt sie dynamisch zu erstellen. Diese Option gibt Entwicklern die vollständige Kontrolle über das App-Manifest-App-Paket & von Microsoft Teams.

Diese Option ist ideal geeignet für die folgenden Szenarien:

  • Entwickler möchten die volle Kontrolle über die Inhalte des Microsoft Teams App-Manifests haben.
  • Komplexe Microsoft Teams-Szenarien, wie die Festlegung von Bots, Besprechungs-Apps, usw.
  • Geben Sie die ID und die Namensbeschreibung & der Microsoft Teams-App an, wenn die SPFx-Lösung mehr als eine Komponente enthält. Wenn eine SPFx-Lösung beispielsweise mehrere Webparts enthält, die als Registerkarten in Microsoft Teams verwendet werden können, wählt die automatische Generierung des Manifests eine der beiden Komponenten aus, die als App-ID und Namensbeschreibung & von Microsoft Teams verwendet werden sollen.

Gehen Sie wie folgt vor, um Ihr eigenes Microsoft Teams-App-Manifest-App-Paket & zu verwenden, anstatt es von SharePoint Online dynamisch erstellen zu lassen:

  1. Erstellen Sie ein Microsoft Teams-App-Manifest gemäß der Microsoft Teams-Dokumentation:

    Wichtig

    Stellen Sie sicher, dass Sie im Teams-App-Manifest den folgenden Eintrag hinzufügen:

    "webApplicationInfo": {
    "resource": "https://{teamSiteDomain}",
    "id": "00000003-0000-0ff1-ce00-000000000000"
    }
    

    Dies ist erforderlich, um sicherzustellen, dass alle API-Aufrufe in der Komponente von Microsoft Teams-Rich-Clients erfolgreich ausgeführt werden. teamSiteDomain ist derselbe Mandant, den der Teams/Client verwendet. Dies funktioniert nicht mandanten- und domänenübergreifend, sodass Sie keine andere Domäne hartcodieren können.

  2. Erstellen Sie das Microsoft Teams-App-Paket namens TeamsSPFxApp.zip durch Komprimieren des Inhalts des Ordners ./teams.

    Wichtig

    Komprimieren Sie nicht den Ordner, sondern den Inhalt des Ordners. Wenn Sie den Ordner zippen, wird ein Unterordner der obersten Ebene in die resultierende ZIP-Datei eingefügt, und dies ist kein gültiges App-Paket in Microsoft Teams.

  3. Speichern Sie die TeamsSPFxApp.zip im Ordner /teams der SPFx-Lösung.

  4. Erstellen Sie das SPFx-Paket auf die gleiche Weise wie eine normale SPFx-Lösung, indem Sie gulp package-solution verwenden. Es enthält das benutzerdefinierte Microsoft Teams-App-Paket im *.sppkg.

Dynamische Referenzierung der zugrunde liegenden SharePoint-Site-URLs

Das Manifest der Microsoft Teams-App muss auf den bereitgestellten Hostspeicherort der SPFx-Komponenten verweisen. Diese URLs sind jedoch zum Zeitpunkt der Erstellung des Microsoft Teams-App-Manifests oder -App-Pakets nicht bekannt.

Wenn Sie das App-Paket in dieser Bereitstellungsoption angeben, sollten Sie daher die folgenden Zeichenfolgen verwenden, die zur Laufzeit durch Microsoft Teams ersetzt werden:

  • {teamSiteDomain}: URL des SharePoint Online-Mandanten, unter der die SPFx-Lösung bereitgestellt und installiert ist
  • {teamSitePath}: Pfad zur SharePoint-Website, auf der die SPFx-Komponenten installiert wurden
  • {locale}: Aktuelles Gebietsschema des Microsoft Teams-Clients

Wenn Sie ein Webpart in einer benutzerdefinierten Microsoft Teams-Lösung verwenden, können die URL der Seite, die das Webpart laden wird, anhand dieser Zeichenfolgen definieren. Verwenden Sie zum Beispiel die folgende Tabelle als Leitfaden für die Erstellung der URL von Webparts, die in Microsoft Teams-Apps verwendet werden:

Wichtig

In den folgenden Beispielen wird davon ausgegangen, dass die ID der SPFx-Komponente {{SPFX_COMPONENT_ID}} lautet. Stellen Sie sicher, dass Sie diesen Wert durch die Komponenten-ID für Ihr Webpart ersetzen. Dieser Wert wird nicht dynamisch von SharePoint oder Microsoft Teams festgelegt: Der Entwickler muss diesen Wert festlegen.

Microsoft Teams-Komponente Eigenschaft des Microsoft Teams-App-Manifests Eigenschaft des Microsoft Teams-App-Manifests
Registerkarte „Persönlich“ staticTabs[..].contentUrl https://{teamSiteDomain}/_layouts/15/TeamsLogon.aspx?SPFX=true&dest=/_layouts/15/teamshostedapp.aspx%3Fteams%26personal%26componentId={{SPFX_COMPONENT_ID}}%26forceLocale={locale}
Registerkarte „Kanal-/Gruppenchat“ configurableTabs[..].configurationUrl https://{teamSiteDomain}{teamSitePath}/_layouts/15/TeamsLogon.aspx?SPFX=true&dest={teamSitePath}/_layouts/15/teamshostedapp.aspx%3FopenPropertyPane=true%26teams%26componentId={{SPFX_COMPONENT_ID}}%26forceLocale={locale}
Messaging-Erweiterung composeExtensions.commands[..].taskInfo.url https://{teamSiteDomain}/_layouts/15/TeamsLogon.aspx?SPFX=true&dest=/_layouts/15/teamstaskhostedapp.aspx%3Fteams%26personal%26componentId={{SPFX_COMPONENT_ID}}%26forceLocale={locale}