Microsoft Teams
Vue d’ensemble
Section intitulée « Vue d’ensemble »Le fournisseur Microsoft Teams intègre votre travailleur numérique aux canaux et conversations Teams. Il prend en charge :
- Les messages de canal
- Les conversations personnelles
- Les conversations de groupe
- Adaptive Cards
- Les composants interactifs
- Les pièces jointes
Prérequis
Section intitulée « Prérequis »- Un tenant Microsoft 365
- Un client id d’application Microsoft Entra public prenant en charge OAuth par code d’appareil
- L’autorisation d’accorder ou d’approuver les scopes Graph utilisés par la configuration
- L’autorisation de créer des canaux dans l’équipe sélectionnée si la configuration doit créer un canal demandé manquant
Configuration
Section intitulée « Configuration »La configuration Teams prend en charge deux formes :
| Mode | À utiliser quand | Champs principaux |
|---|---|---|
| Mode canal Graph | Vous voulez des envois et abonnements de canal basés sur Graph. C’est le mode de configuration par défaut. | tenant_id, client_id, team_id, team_name, channel_id, channel_name, desired_channel_name |
| Mode Bot Framework | Vous avez un Azure Bot et un manifeste d’application Teams pour les messages entrants Bot Framework. | ms_bot_app_id, ms_bot_app_password, bot_display_name, messaging_endpoint |
-
Configurer l’indication de configuration
Vous pouvez lancer la configuration avec le client id public par défaut, ou fournir votre propre
client_id. Ajoutezdesired_channel_namesi vous voulez que la configuration trouve ou crée un canal standard spécifique :answers.json {"setup_answers": {"messaging-teams": {"client_id": "6c115a7a-f656-49c4-975a-5e831efae833","desired_channel_name": "hr onboarding"}}} -
Démarrer la configuration Teams
Fenêtre de terminal gtc setup --answers answers.json ./my-bundle -
Terminer l’OAuth par code d’appareil
La configuration démarre un flux Microsoft device-code. Copiez le code, ouvrez l’URL de vérification, connectez-vous avec le compte Microsoft 365 qui peut accéder à l’équipe cible et approuvez les scopes Graph demandés.
Revenez au terminal et continuez lorsque la configuration demande de vérifier Microsoft Teams. Greentic interroge ensuite Microsoft Graph, stocke les jetons délégués comme secrets et exécute la découverte après connexion.
-
Sélectionner ou vérifier l’équipe et le canal
La configuration appelle Microsoft Graph pour lister les équipes et canaux rejoints par l’utilisateur connecté. Choisissez l’équipe et le canal lorsque cela est demandé, ou laissez
desired_channel_nameguider le flux de création si le canal manque.La configuration enregistre les identifiants et les libellés :
team_idetteam_namechannel_idetchannel_name
Les IDs sont utilisés par les envois runtime et la configuration des abonnements. Les noms affichés servent aux opérateurs et aux interfaces de configuration.
-
Vérifier le canal dans Teams
Ouvrez Microsoft Teams et allez dans l’équipe et le canal sélectionnés. Si la configuration a créé
desired_channel_name, confirmez que le canal existe et que le compte connecté y a accès.Si l’équipe sélectionnée n’avait pas encore ce canal, la configuration peut créer un canal standard puis enregistrer le
channel_idet lechannel_nameobtenus. L’ID reste la référence pour les envois runtime et les abonnements. -
Démarrer ou redémarrer le runtime
Fenêtre de terminal gtc start ./my-bundleLe pack Teams déclare les métadonnées d’abonnement souhaitées, dont le modèle de ressource Graph, les champs de configuration du composant, le modèle d’URL de notification et le modèle d’URL de notification de cycle de vie. Les hôtes doivent utiliser ces métadonnées au lieu de coder les chemins de ressources Teams en dur.
-
Tester le canal cible
Envoyez un message dans le canal Teams sélectionné ou déclenchez un flow qui envoie vers Teams. Si les messages n’apparaissent pas, relancez la configuration et vérifiez que les
team_idetchannel_idenregistrés correspondent encore au canal ouvert dans Teams.
Options de configuration
Section intitulée « Options de configuration »| Option | Requis | Description |
|---|---|---|
client_id | Oui pour la configuration Graph | Microsoft application client id public utilisé pour OAuth par code d’appareil |
tenant_id | Généré | Tenant id découvert depuis Microsoft Graph |
team_id | Généré ou sélectionné | Teams team id utilisé pour les envois de canal et les abonnements |
team_name | Généré ou sélectionné | Nom affiché de l’équipe sélectionnée |
channel_id | Généré ou sélectionné | Channel id utilisé pour les envois et les abonnements |
channel_name | Généré ou sélectionné | Nom affiché du canal sélectionné |
desired_channel_name | Non | Indication de recherche/par défaut et nom de création de canal quand la création est prise en charge |
chat_id | Non | Chat id pour les abonnements de chat lorsque applicable |
ms_bot_app_id | Mode Bot Framework | Microsoft Bot Framework app id |
ms_bot_app_password | Mode Bot Framework | Mot de passe de l’application Bot Framework |
bot_display_name | Mode Bot Framework | Nom affiché utilisé dans les workflows de manifeste Teams |
messaging_endpoint | Mode Bot Framework | Endpoint public de messagerie Bot Framework |
Features
Section intitulée « Features »Text Messages
Section intitulée « Text Messages »- id: reply type: reply config: message: "Hello! How can I help you today?"Markdown Formatting
Section intitulée « Markdown Formatting »Teams supports a subset of Markdown:
- id: formatted type: reply config: message: | **Bold** *Italic* - Bullet 1 - Bullet 2 [Link](https://example.com)Adaptive Cards
Section intitulée « Adaptive Cards »Teams prend en charge les Adaptive Cards nativement via les pièces jointes Bot Framework. Utilisez la version prise en charge par votre client Teams cible et votre modèle d’action ; les fonctionnalités Adaptive Cards 1.4 comme Universal Actions sont propres aux scénarios de bot pris en charge.
- 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
Section intitulée « 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..."Suggestions (Quick Replies)
Section intitulée « Suggestions (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"File Attachments
Section intitulée « File Attachments »- id: send_file type: reply config: message: "Here's your report" attachments: - contentType: "application/pdf" contentUrl: "https://example.com/report.pdf" name: "report.pdf"Handling Card Actions
Section intitulée « Handling Card Actions »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_actionChannel Configuration
Section intitulée « Channel Configuration »Team Channel
Section intitulée « Team Channel »tenants: demo: teams: support: channels: teams: provider: messaging-teams config: team_id: "19:xxx@thread.tacv2" channel_id: "19:yyy@thread.tacv2"Personal Chat
Section intitulée « Personal Chat »For personal 1:1 chats, no channel configuration needed. The bot responds to whoever messages it.
Proactive Messaging
Section intitulée « Proactive Messaging »Send messages without user initiation:
- id: proactive type: reply config: message: "Reminder: Your ticket #123 needs attention" conversation_reference: conversation_id: "{{stored_conversation_id}}" service_url: "{{stored_service_url}}"Troubleshooting
Section intitulée « Troubleshooting »Bot Not Responding
Section intitulée « Bot Not Responding »- Check endpoint configuration in Azure Bot Service
- Verify SSL certificate is valid
- Check app credentials are correct
- Review activity logs in Azure
”Unauthorized” Error
Section intitulée « ”Unauthorized” Error »- Verify App ID and Password
- Check tenant ID for single-tenant apps
- Ensure bot is enabled in Teams channel
Card Not Rendering
Section intitulée « Card Not Rendering »- Validate card JSON with Adaptive Cards Designer
- Check Teams supports the card version and action type
- Verify all required fields are present
Messages Delayed
Section intitulée « Messages Delayed »- Teams can batch messages; this is normal
- Check your server performance
- Verify no rate limiting
Security
Section intitulée « Security »Greentic automatically validates:
- JWT signature
- Issuer and audience claims
- Token expiration
Next Steps
Section intitulée « Next Steps »- Adaptive Cards Designer - Design cards visually
- Fournisseur Slack - Ajouter l’intégration Slack
- Fournisseur WebChat - Intégrer dans des sites web