Aller au contenu
Guides

OpenClaw sur Microsoft Teams

L’extension intégrée, la configuration en une commande avec la CLI Teams, le tunnel, l’appairage des messages privés et les listes d’autorisation, le piège de l’identifiant d’équipe, les styles de réponse, et pourquoi les fichiers de groupe exigent SharePoint

7 min de lecture

Microsoft Teams est une extension de canal OpenClaw intégrée : le texte et les pièces jointes en messages privés fonctionnent, les sondages et les invites d’approbation voyagent en Adaptive Cards, et envoyer des fichiers dans des canaux ou des conversations de groupe exige un identifiant de site SharePoint plus des permissions Graph. La documentation le répartit sur huit pages ; ce billet suit les trois qui décident si le bot fonctionne tout court : la configuration, le contrôle d’accès et le comportement des messages. Voici la configuration rapide et le chemin manuel, le tunnel, la politique des messages privés et des groupes, le piège des identifiants, les canaux privés, le routage et les styles de réponse, et les pièces jointes et l’envoi de fichiers.

Configuration

  • La CLI Teams fait l’enregistrement, le manifeste et les identifiants d’un coup : installez-la sous son étiquette de prévisualisation, connectez-vous et vérifiez l’état, démarrez un tunnel parce que Teams ne peut pas atteindre localhost, un tunnel de développement persistant avec l’accès anonyme autorisé puisque Teams ne peut pas s’y authentifier tandis que chaque requête du bot reste validée par le SDK, puis créez l’application avec un nom et le point d’accès du tunnel ; cela crée l’application Entra, un secret client, un manifeste avec icônes et un bot géré par Teams sans abonnement Azure, et affiche l’identifiant client, le secret, l’identifiant de locataire et l’identifiant d’application Teams.
  • Configurez OpenClaw avec l’identifiant d’application, le mot de passe et l’identifiant de locataire et un port et un chemin de webhook, ou les variables d’environnement correspondantes ; installez l’application dans Teams depuis l’invite ou le lien d’installation ; et lancez le doctor de la CLI, qui vérifie l’enregistrement du bot, l’application AAD, le manifeste et le SSO en une passe. Pour la production, la documentation renvoie à l’authentification fédérée par certificat ou identité gérée plutôt qu’un secret client.
  • Le chemin manuel crée un Azure Bot, à locataire unique puisque la création multi-locataires a été dépréciée après juillet 2025, copie l’identifiant d’application, un secret client et l’identifiant de locataire, fixe le point d’accès de messagerie, active le canal Teams, construit un paquet d’application avec une entrée de bot, les portées personnelle, équipe et conversation de groupe, la prise en charge des fichiers et les permissions RSC, et configure OpenClaw de la même façon ; la passerelle écoute le trafic webhook du Bot Framework sur le chemin des messages et démarre le canal dès que des identifiants existent.
  • Le développement local garde un tunnel persistant pour que l’URL survive aux sessions, et une URL de tunnel changée est poussée par la commande de mise à jour de l’application ; le test est la commande doctor, puis un message privé au bot en surveillant les journaux de la passerelle.
Le paramètre de requête groupId des URL Teams n’est PAS l’identifiant d’équipe utilisé pour la configuration.

Contrôle d’accès

Teams a un compte par configuration de canal. Les messages privés valent par défaut le mode appairage, donc les expéditeurs inconnus sont ignorés jusqu’à approbation, et la liste d’autorisation devrait utiliser des identifiants d’objets AAD stables ou des groupes d’accès statiques plutôt que des noms, puisque la correspondance par nom est désactivée par défaut et seulement sur adhésion ; l’assistant peut résoudre les noms en identifiants par Graph. Les groupes valent par défaut liste d’autorisation, bloqués tant qu’une liste d’expéditeurs de groupe ne nomme pas des expéditeurs, des groupes d’accès ou des identifiants de conversation aux formats de fil avec leur casse exacte, et les identifiants de conversation n’accordent jamais l’accès aux messages privés ; ouvert admet tout membre, toujours conditionné par mention, et désactivé bloque tous les canaux. Une carte d’équipes limite les réponses aux équipes et canaux listés par leurs identifiants de conversation, et quand la politique est liste d’autorisation et qu’une carte d’équipes existe, seuls les équipes et canaux listés sont acceptés ; les expéditeurs de groupe et les lectures Graph déléguées sont deux choses différentes, donc une configuration qui ne fixe que des expéditeurs devrait garder la politique de liste et ajouter le canal cible sous la carte d’équipes. Le piège : le paramètre de requête d’identifiant de groupe d’une URL Teams est l’identifiant de groupe Entra, pas l’identifiant de conversation du Bot Framework, donc la clé d’équipe est le segment de chemin décodé après le segment d’équipe et la clé de canal celui après le segment de canal. Les canaux privés ont une prise en charge limitée des bots, les messages webhook en temps réel peuvent ne pas arriver, et les contournements sont les canaux standard, les messages privés, ou l’historique Graph avec la permission de lecture des messages de canaux.

Messages et fichiers

  • Les clés de session suivent le format standard, les messages privés partageant la session principale et les messages de canal et de groupe indexés par identifiant de conversation. Teams a deux styles d’interface de canal sur un même modèle de données et l’API ne dit pas lequel un canal utilise, donc un style de réponse se configure : fil pour les publications classiques, premier niveau pour les canaux en fils à la Slack, résolu par canal, puis par équipe, puis globalement, puis implicitement d’après l’exigence de mention, et épinglé globalement pour éviter que les mentions dans les canaux de publications apparaissent en publications de premier niveau ; les envois proactifs vers les conversations de groupe et personnelles se résolvent toujours en premier niveau. En style fil, la racine du fil d’origine est rattachée pour que les réponses atterrissent dans le même fil, y compris pour les envois proactifs après expiration du contexte du tour.
  • Les mentions sortantes utilisent une syntaxe de nom entre crochets suivi de l’identifiant avec des crochets échappés ; les images et fichiers en messages privés passent par les API de fichiers du bot, tandis que les pièces jointes de canaux et de groupes vivent dans le stockage Microsoft 365 et arrivent comme un fragment HTML sauf si des permissions Graph autorisent le téléchargement, les médias ne sont récupérés que depuis les hôtes Microsoft par défaut, et les en-têtes d’autorisation ne vont qu’aux hôtes Graph et Bot Framework.
  • Les fichiers en messages privés utilisent le flux de carte de consentement et les images s’intègrent en ligne partout, mais les fichiers dans les conversations de groupe et les canaux sont envoyés vers un site SharePoint parce que les bots utilisent une identité d’application qui ne peut pas utiliser la ressource de l’utilisateur connecté : ajoutez la permission de lecture-écriture des sites et une permission de lecture des membres de conversation, accordez le consentement administrateur, retrouvez l’identifiant du site par Graph, et configurez-le. Les canaux reçoivent un lien de partage à l’échelle de l’organisation, les conversations de groupe un lien par utilisateur réservé aux membres, et un envoi de groupe sans permission de lecture des membres prise en charge échoue fermé plutôt que d’élargir l’accès ; les envois atterrissent dans un dossier partagé de la bibliothèque par défaut du site.

OpenClaw sur Slack et OpenClaw sur Discord sont les deux canaux professionnels au même modèle de listes et de mentions, avec une gestion des fichiers plus simple.

Sur Diali

Microsoft Teams ne fait pas partie des canaux que Diali connecte aujourd’hui : WhatsApp, Telegram, Discord, Slack, Mattermost, Matrix, SMS et voix. Connecter votre premier canal en cinq minutes explique comment ceux-là sont reliés, et La sécurité chez Diali la frontière qui s’applique à chacun.

Les cinq autres pages

Les autres pages Teams couvrent l’authentification par certificat et identité gérée, le manifeste et la séparation entre permissions RSC et Graph, les clés de configuration et les limites d’historique, les cartes et actions des approbations aux sondages et aux informations de membres, et le dépannage des erreurs d’envoi de manifeste aux délais de webhook. OpenClaw hébergé sur Diali est l’assistant et Les extensions d’OpenClaw la surface dans laquelle l’extension Teams intégrée est livrée.

  • Une commande CLI, un tunnel, un doctor.
  • Des identifiants d’objets, pas des noms ; des segments de chemin, pas l’identifiant de groupe.
  • Les fichiers en privé marchent tout seuls ; les fichiers de groupe exigent SharePoint.
Commencer

Arrêtez de lire, construisez le vôtre

Configurez un agent, choisissez un canal, et faites-le travailler dans l’application que vous gardez déjà ouverte.