Zum Hauptinhalt springen

Entwicklerdokumentation – Sparks for Teams

Sprache: Deutsch | English


App-Store und Teams-Widgets

Sparks bietet einen eigenen App-Store in Chats und Kanälen (Suche, Kategorien, integrierte Apps, Website-URL). Zusätzlich können Sie ein Microsoft-Teams-manifest.json importieren. Es gibt keinen Microsoft Teams App Store 1:1 — professionelle SSO-Apps brauchen eine Partner-Freigabe der Sparks-Azure-Client-ID.

SzenarioAufwand / Hinweis
Eigene Widgets (von Ihnen gehostet)Gering — TeamsJS wie in Teams, Same-Origin in Sparks
Bereits in Teams angeheftete TabsGraph zeigt sie in MS Chat/Channels (und verknüpften Matrix-Räumen), wenn Microsoft-Login und optional TeamsTab.Read.All
Einfache Drittanbieter-TabsManifest importieren; funktioniert gut ohne strenge Token-Audience-Prüfung
Professionelle SSO-Store-AppsApp muss Sparks als Authorized Client whitelisten; sonst nur eingeschränktes Token

Nutzerhilfe: Dialog Tab hinzufügen, Custom Tabs.


MS-Teams-Widgets für Sparks for Teams anpassen

Sparks unterstützt Tabs und Widgets, die dem Microsoft Teams App-Manifest-Schema folgen. Viele Teams-Tab-Apps lassen sich mit geringen oder keinen Änderungen einbinden.

Voraussetzungen

  • Manifest: Ein gültiges Teams App-Manifest (JSON) — Import im App-Store („Teams-Manifest importieren“)
  • Tabs: Statische Tabs (staticTabs) oder konfigurierbare Tabs (configurableTabs)
  • Domains: Alle verwendeten URLs müssen in validDomains eingetragen sein (HTTPS)

Manifest-Struktur (Auszug)

{
"id": "your-app-id",
"version": "1.0.0",
"manifestVersion": "1.16",
"name": { "short": "App Name", "full": "Full App Name" },
"description": { "short": "...", "full": "..." },
"developer": {
"name": "Your Company",
"websiteUrl": "https://example.com",
"privacyUrl": "https://example.com/privacy",
"termsOfUseUrl": "https://example.com/terms"
},
"icons": { "outline": "outline.png", "color": "color.png" },
"staticTabs": [
{
"entityId": "tab1",
"name": "Tab Name",
"contentUrl": "https://your-domain.com/tab",
"websiteUrl": "https://your-domain.com/tab",
"scopes": ["personal", "groupchat", "team"]
}
],
"validDomains": ["your-domain.com"]
}

Überblick: Paket und Hosting

Die folgenden Abbildungen fassen zusammen, wie Manifest, Tab-URLs und die Sparks-Oberfläche zusammenspielen.

Überblick Teams-App-Paket und Manifest

Paketinhalt: manifest.json, Icons und HTTPS-Webinhalt der Tabs; das Manifest verknüpft staticTabs / configurableTabs mit validDomains.

Tab-Einbettung in Sparks

Sparks lädt den Tab in einem Sandbox-iframe; dort rufen Sie wie in Teams microsoftTeams.app.initialize() auf.

Wichtige Anpassungen

AspektHinweis
Teams JavaScript SDKSparks injiziert einen kompatiblen Polyfill (initialize, getContext, getAuthToken, Theme, pages.config, Notify). Rufen Sie microsoftTeams.app.initialize() nach dem Laden auf.
contentUrl / websiteUrlMuss HTTPS sein und in validDomains stehen.
Scopespersonal, groupchat, team – Sparks unterstützt diese Kontexte.
iframe-SandboxTabs laufen in iframes; keine nativen Plugins.
SSO (getAuthToken)Ohne webApplicationInfo liefert Sparks ein allgemeines MSAL-Token. Mit webApplicationInfo versucht Sparks den app-spezifischen Scope — dafür muss Ihre Azure-App die Sparks-Client-ID als Authorized Client freigeben.
ImportIm Raum: Tab hinzufügen / Apps → „Teams-Manifest importieren“ (JSON-Datei).

Partner-SSO (Azure)

  1. In der App-Registrierung der Tab-App: Expose an API → Authorized client applications → Sparks-Client-ID eintragen.
  2. Im Manifest webApplicationInfo.id und resource korrekt setzen.
  3. Manifest in Sparks importieren; Nutzer mit Microsoft anmelden.

Microsoft-Dokumentation (Original)


Meeting-Video und Hintergrundeffekte (Vistameet-Teams)

Für Arbeit am Client-Repository Vistameet-Teams:

ThemaHinweis
@livekit/track-processorsBlur und virtueller Hintergrund. Im Repo: ^0.7.2; auf npm zuletzt 0.7.2 (vor Updates: npm view @livekit/track-processors version). Exakte Pins siehe package.json (livekit-client usw.).
Prozessor beendenHintergrundeffekt sauber entfernen: LocalVideoTrack.stopProcessor() (LiveKit). Ohne diesen Schritt kann die Kamera-Vorschau nach dem Deaktivieren von Blur/Hintergrundbild hängen bleiben.

Nutzerhinweise (Auto/GPU/CPU, Vollfläche): Meeting beitreten.


Matrix-Chat: Nachricht weiterleiten (Vistameet-Teams)

Benutzerdokumentation: Dialog Nachricht weiterleiten.

Technische Implementierung im Client-Repository Vistameet-Teams:

ThemaHinweis
UIForwardDialog — gemeinsam für Chat (MessageBubble) und Matrix-Kanal (ThreadBox)
VersandchatStore.sendMessagematrixService.sendMessage; neue m.text-Nachricht mit Präfix forwardedMessageFrom
ProtokollKein Matrix-Forward-Event (m.forward); Klartext, keine Anhänge
Kanal vs. ChatChat blendet Quellraum aus (excludeRoomId); Kanal nicht

n8n und Automatisierung

Umfassendes Entwicklerhandbuch (API-Keys, REST /api/v1/automation, Incoming/Outgoing Webhooks, Custom Nodes, Betrieb):

Technische Kurzreferenz und OpenAPI liegen im App-Repo Vistameet-Teams unter docs/N8N.md und docs/openapi/sparks-automation-v1.yaml.


Verwandte Seiten