Zum Inhalt springen

Microsoft Teams

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
  • 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

Das Teams-Setup unterstützt zwei Konfigurationsformen:

ModusVerwenden, wennHauptfelder
Graph-KanalmodusSie 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-ModusSie 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
  1. Provider konfigurieren

    Geben Sie mindestens client_id und 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"
    }
    }
    }
  2. Setup ausführen

    Terminal-Fenster
    gtc setup --answers answers.json ./my-bundle
  3. 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.

  4. Team und Kanal auswählen oder verifizieren

    Wenn team_id oder channel_id fehlen, versucht Setup sie aus team_name oder channel_name aufzulösen. Wenn desired_channel_name gesetzt 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.

  5. Runtime starten oder neu starten

    Terminal-Fenster
    gtc start ./my-bundle

    Der 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.

  6. 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.

OptionErforderlichBeschreibung
client_idJa für Graph-ModusÖffentliche Microsoft Entra application client id, die Device-Code-OAuth erlaubt
tenant_idNeinMicrosoft Entra tenant id. Wenn nicht gesetzt, verwendet Setup den Tenant des angemeldeten Kontos.
team_idBedingtTeams team id für Kanalversand. Kann aus team_name aufgelöst werden.
team_nameBedingtAnzeigename des Teams, der verwendet wird, wenn team_id nicht gesetzt ist.
channel_idBedingtTeams channel id für Kanalversand. Kann aus channel_name aufgelöst werden.
channel_nameBedingtVorhandener Kanalname, der verwendet wird, wenn channel_id nicht gesetzt ist.
desired_channel_nameNeinKanalname, den Setup erstellen oder wiederverwenden soll.
ms_bot_app_idJa für Bot-ModusMicrosoft App ID der Azure Bot-App
ms_bot_app_passwordJa für Bot-ModusClient secret der Bot-App
bot_display_nameNeinAnzeigename, der beim Erstellen von Bot-Metadaten verwendet wird
messaging_endpointGeneriertBot Framework messaging endpoint, den der Provider veröffentlicht
- id: reply
type: reply
config:
message: "Hello! How can I help you today?"

Teams unterstützt einen Teil von Markdown:

- id: formatted
type: reply
config:
message: |
**Bold** *Italic*
- Bullet 1
- Bullet 2
[Link](https://example.com)

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"
- 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..."
- 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"
- id: send_file
type: reply
config:
message: "Here's your report"
attachments:
- contentType: "application/pdf"
contentUrl: "https://example.com/report.pdf"
name: "report.pdf"
flows/on_card_action.ygtc
name: handle_card_action
version: "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_action
greentic.demo.yaml
tenants:
demo:
teams:
support:
channels:
teams:
provider: messaging-teams
config:
team_id: "19:xxx@thread.tacv2"
channel_id: "19:yyy@thread.tacv2"

Für persönliche 1:1-Chats ist keine Kanal-Konfiguration erforderlich. Der Bot antwortet jedem, der ihm schreibt.

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}}"
  1. Endpunkt-Konfiguration prüfen im Azure Bot Service
  2. SSL-Zertifikat prüfen, ob es gültig ist
  3. App-Zugangsdaten prüfen, ob sie korrekt sind
  4. Activity-Logs prüfen in Azure
  • App ID und Password prüfen
  • Tenant ID für Single-Tenant-Apps prüfen
  • Sicherstellen, dass der Bot im Teams-Kanal aktiviert ist
  • 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
  • Teams kann Nachrichten bündeln; das ist normal
  • Prüfen Sie die Leistung Ihres Servers
  • Stellen Sie sicher, dass kein Rate Limiting greift

Greentic validiert automatisch:

  • JWT-Signatur
  • Issuer- und Audience-Claims
  • Token-Ablauf