Microsoft Teams
Überblick
Abschnitt betitelt „Überblick“Der Microsoft Teams-Provider integriert Ihren digitalen Worker in Teams-Kanäle und Chats. Er unterstützt:
- Kanalnachrichten
- Persönliche Chats
- Gruppenchats
- Adaptive Cards
- Interaktive Komponenten
- Datei-Anhänge
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Microsoft 365-Tenant
- Öffentliche Microsoft Entra application client id mit Unterstützung für Device-Code-OAuth
- Berechtigung, die von Setup verwendeten Graph-Scopes zu erteilen oder ihnen zuzustimmen
- Berechtigung, im ausgewählten Team Kanäle zu erstellen, wenn Setup einen fehlenden desired channel erstellen soll
Einrichtung
Abschnitt betitelt „Einrichtung“Das Teams-Setup unterstützt zwei Konfigurationsformen:
| Modus | Verwenden, wenn | Hauptfelder |
|---|---|---|
| Graph-Kanalmodus | Sie Graph-basierte Kanalversendungen und Abonnements verwenden möchten. Dies ist der Standard-Setupmodus. | tenant_id, client_id, team_id, team_name, channel_id, channel_name, desired_channel_name |
| Bot Framework-Modus | Sie einen Azure Bot und ein Teams-App-Manifest für eingehende Bot Framework-Nachrichten haben. | ms_bot_app_id, ms_bot_app_password, bot_display_name, messaging_endpoint |
-
Provider konfigurieren
Geben Sie mindestens
client_idund entweder einen vorhandenen Kanal oder einen gewünschten Kanalnamen an:answers.json {"setup_answers": {"messaging-teams": {"client_id": "your-public-entra-app-client-id","tenant_id": "optional-tenant-id","team_name": "Support","desired_channel_name": "digital-worker"}}}Wenn Sie bereits eine Azure Bot-App für Bot Framework-Chat haben, geben Sie stattdessen die Bot-Felder an:
answers.json {"setup_answers": {"messaging-teams": {"ms_bot_app_id": "your-microsoft-app-id","ms_bot_app_password": "your-client-secret","bot_display_name": "Support Bot"}}} -
Setup ausführen
Terminal-Fenster gtc setup --answers answers.json ./my-bundle -
Bei Microsoft anmelden
Setup startet einen Device-Code-OAuth-Flow. Öffnen Sie die angezeigte URL, geben Sie den Code ein und melden Sie sich mit einem Konto an, das dem Ziel-Tenant und -Team Zugriff gewähren kann.
-
Team und Kanal auswählen oder verifizieren
Wenn
team_idoderchannel_idfehlen, versucht Setup sie austeam_nameoderchannel_nameaufzulösen. Wenndesired_channel_namegesetzt ist und der Kanal fehlt, kann Setup ihn erstellen. Die aufgelösten Werte werden in den Setup-Antworten gespeichert, damit spätere Läufe stabil bleiben. -
Runtime starten oder neu starten
Terminal-Fenster gtc start ./my-bundleDer Provider verwendet die gespeicherten Microsoft-Tokens und Kanal-IDs für Graph-basierte Kanalnachrichten. Wenn Bot Framework-Felder konfiguriert sind, validiert die Runtime auch eingehende Bot Framework-Aktivitäten.
-
In Teams testen
Senden Sie eine Nachricht in den konfigurierten Kanal oder installieren Sie die Bot-App in Teams, wenn Sie den Bot Framework-Modus verwenden.
Konfigurationsoptionen
Abschnitt betitelt „Konfigurationsoptionen“| Option | Erforderlich | Beschreibung |
|---|---|---|
client_id | Ja für Graph-Modus | Öffentliche Microsoft Entra application client id, die Device-Code-OAuth erlaubt |
tenant_id | Nein | Microsoft Entra tenant id. Wenn nicht gesetzt, verwendet Setup den Tenant des angemeldeten Kontos. |
team_id | Bedingt | Teams team id für Kanalversand. Kann aus team_name aufgelöst werden. |
team_name | Bedingt | Anzeigename des Teams, der verwendet wird, wenn team_id nicht gesetzt ist. |
channel_id | Bedingt | Teams channel id für Kanalversand. Kann aus channel_name aufgelöst werden. |
channel_name | Bedingt | Vorhandener Kanalname, der verwendet wird, wenn channel_id nicht gesetzt ist. |
desired_channel_name | Nein | Kanalname, den Setup erstellen oder wiederverwenden soll. |
ms_bot_app_id | Ja für Bot-Modus | Microsoft App ID der Azure Bot-App |
ms_bot_app_password | Ja für Bot-Modus | Client secret der Bot-App |
bot_display_name | Nein | Anzeigename, der beim Erstellen von Bot-Metadaten verwendet wird |
messaging_endpoint | Generiert | Bot Framework messaging endpoint, den der Provider veröffentlicht |
Funktionen
Abschnitt betitelt „Funktionen“Textnachrichten
Abschnitt betitelt „Textnachrichten“- id: reply type: reply config: message: "Hello! How can I help you today?"Markdown-Formatierung
Abschnitt betitelt „Markdown-Formatierung“Teams unterstützt einen Teil von Markdown:
- id: formatted type: reply config: message: | **Bold** *Italic* - Bullet 1 - Bullet 2 [Link](https://example.com)Adaptive Cards
Abschnitt betitelt „Adaptive Cards“Teams unterstützt Adaptive Cards nativ über Bot Framework-Anhänge. Verwenden Sie die Version, die von Ihrem Ziel-Teams-Client und Action-Modell unterstützt wird; Adaptive Cards 1.4-Funktionen wie Universal Actions sind auf unterstützte Bot-Szenarien beschränkt.
- id: send_card type: adaptive-card config: card: type: AdaptiveCard version: "1.4" body: - type: TextBlock text: "Welcome!" size: Large weight: Bolder - type: TextBlock text: "How can I assist you today?" - type: ActionSet actions: - type: Action.Submit title: "Get Help" data: action: "help" - type: Action.Submit title: "Create Ticket" data: action: "ticket"Hero Cards
Abschnitt betitelt „Hero Cards“- id: hero_card type: reply config: hero_card: title: "Support Bot" subtitle: "Your AI Assistant" text: "I can help with technical issues, billing questions, and more." images: - url: "https://example.com/bot-image.png" buttons: - type: messageBack title: "Get Started" text: "get started" displayText: "Getting started..."Vorschläge (Quick Replies)
Abschnitt betitelt „Vorschläge (Quick Replies)“- id: suggestions type: reply config: message: "What would you like to do?" suggested_actions: - title: "Check Status" value: "status" - title: "Create Ticket" value: "ticket" - title: "Contact Human" value: "human"Datei-Anhänge
Abschnitt betitelt „Datei-Anhänge“- id: send_file type: reply config: message: "Here's your report" attachments: - contentType: "application/pdf" contentUrl: "https://example.com/report.pdf" name: "report.pdf"Kartenaktionen verarbeiten
Abschnitt betitelt „Kartenaktionen verarbeiten“name: handle_card_actionversion: "1.0"
nodes: - id: route_action type: branch config: conditions: - expression: "data.action == 'help'" to: show_help - expression: "data.action == 'ticket'" to: create_ticket default: unknown_action
- id: show_help type: reply config: message: "Here's how I can help..."
triggers: - type: invoke name: "adaptiveCard/action" target: route_actionKanal-Konfiguration
Abschnitt betitelt „Kanal-Konfiguration“Team-Kanal
Abschnitt betitelt „Team-Kanal“tenants: demo: teams: support: channels: teams: provider: messaging-teams config: team_id: "19:xxx@thread.tacv2" channel_id: "19:yyy@thread.tacv2"Persönlicher Chat
Abschnitt betitelt „Persönlicher Chat“Für persönliche 1:1-Chats ist keine Kanal-Konfiguration erforderlich. Der Bot antwortet jedem, der ihm schreibt.
Proaktives Messaging
Abschnitt betitelt „Proaktives Messaging“Senden Sie Nachrichten ohne Benutzerinitiative:
- id: proactive type: reply config: message: "Reminder: Your ticket #123 needs attention" conversation_reference: conversation_id: "{{stored_conversation_id}}" service_url: "{{stored_service_url}}"Fehlerbehebung
Abschnitt betitelt „Fehlerbehebung“Bot antwortet nicht
Abschnitt betitelt „Bot antwortet nicht“- Endpunkt-Konfiguration prüfen im Azure Bot Service
- SSL-Zertifikat prüfen, ob es gültig ist
- App-Zugangsdaten prüfen, ob sie korrekt sind
- Activity-Logs prüfen in Azure
Fehler “Unauthorized”
Abschnitt betitelt „Fehler “Unauthorized”“- App ID und Password prüfen
- Tenant ID für Single-Tenant-Apps prüfen
- Sicherstellen, dass der Bot im Teams-Kanal aktiviert ist
Karte wird nicht gerendert
Abschnitt betitelt „Karte wird nicht gerendert“- Prüfen Sie das Karten-JSON mit Adaptive Cards Designer
- Prüfen Sie, ob Teams die Kartenversion unterstützt
- Stellen Sie sicher, dass alle erforderlichen Felder vorhanden sind
Verzögerte Nachrichten
Abschnitt betitelt „Verzögerte Nachrichten“- Teams kann Nachrichten bündeln; das ist normal
- Prüfen Sie die Leistung Ihres Servers
- Stellen Sie sicher, dass kein Rate Limiting greift
Sicherheit
Abschnitt betitelt „Sicherheit“Greentic validiert automatisch:
- JWT-Signatur
- Issuer- und Audience-Claims
- Token-Ablauf
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“- Adaptive Cards Designer - Karten visuell entwerfen
- Slack-Provider - Slack-Integration hinzufügen
- WebChat-Provider - In Websites einbetten