Skip to main content

Bot Feishu

Feishu (Lark) est une plateforme de discussion d’équipe utilisée par les entreprises pour la messagerie et la collaboration. Ce plugin connecte OpenClaw à un bot Feishu/Lark en utilisant l’abonnement aux événements WebSocket de la plateforme, ce qui permet de recevoir des messages sans exposer d’URL de webhook publique.

Plugin requis

Installez le plugin Feishu :
Clonage local (lors d’une exécution depuis un dépôt git) :

Démarrage rapide

Il existe deux façons d’ajouter le canal Feishu :

Méthode 1 : assistant de prise en main (recommandé)

Si vous venez d’installer OpenClaw, lancez l’assistant :
L’assistant vous guide pour :
  1. Créer une application Feishu et collecter les identifiants
  2. Configurer les identifiants de l’application dans OpenClaw
  3. Démarrer la passerelle
Après la configuration, vérifiez l’état de la passerelle :
  • openclaw gateway status
  • openclaw logs --follow

Méthode 2 : configuration via la CLI

Si vous avez déjà terminé l’installation initiale, ajoutez le canal via la CLI :
Choisissez Feishu, puis saisissez l’App ID et l’App Secret. Après la configuration, gérez la passerelle :
  • openclaw gateway status
  • openclaw gateway restart
  • openclaw logs --follow

Étape 1 : Créer une application Feishu

1. Ouvrir la plateforme Feishu Open Platform

Visitez Feishu Open Platform et connectez-vous. Les tenants Lark (globaux) doivent utiliser https://open.larksuite.com/app et définir domain: "lark" dans la configuration Feishu.

2. Créer une application

  1. Cliquez sur Create enterprise app
  2. Renseignez le nom et la description de l’application
  3. Choisissez une icône d’application
Create enterprise app

3. Copier les identifiants

Depuis Credentials & Basic Info, copiez :
  • App ID (format : cli_xxx)
  • App Secret
Important : conservez l’App Secret de manière confidentielle. Get credentials

4. Configurer les permissions

Dans Permissions, cliquez sur Batch import et collez :
Configure permissions

5. Activer la capacité bot

Dans App Capability > Bot :
  1. Activez la capacité bot
  2. Définissez le nom du bot
Enable bot capability

6. Configurer l’abonnement aux événements

⚠️ Important : avant de configurer l’abonnement aux événements, assurez-vous que :
  1. Vous avez déjà exécuté openclaw channels add pour Feishu
  2. La passerelle est en cours d’exécution (openclaw gateway status)
Dans Event Subscription :
  1. Choisissez Use long connection to receive events (WebSocket)
  2. Ajoutez l’événement : im.message.receive_v1
⚠️ Si la passerelle n’est pas en cours d’exécution, la configuration de la connexion longue peut échouer à l’enregistrement. Configure event subscription

7. Publier l’application

  1. Créez une version dans Version Management & Release
  2. Soumettez-la pour revue et publiez
  3. Attendez l’approbation de l’administrateur (les applications d’entreprise sont généralement approuvées automatiquement)

Étape 2 : Configurer OpenClaw

Configuration avec l’assistant (recommandé)

Choisissez Feishu et collez votre App ID et votre App Secret.

Configuration via le fichier de configuration

Modifiez ~/.openclaw/openclaw.json :

Configuration via les variables d’environnement

Domaine Lark (global)

Si votre tenant est sur Lark (international), définissez le domaine sur lark (ou une chaîne de domaine complète). Vous pouvez le définir dans channels.feishu.domain ou par compte (channels.feishu.accounts.<id>.domain).

Étape 3 : Démarrer et tester

1. Démarrer la passerelle

2. Envoyer un message de test

Dans Feishu, trouvez votre bot et envoyez un message.

3. Approuver l’appairage

Par défaut, le bot répond avec un code d’appairage. Approuvez-le :
Après l’approbation, vous pouvez discuter normalement.

Présentation

  • Canal bot Feishu : bot Feishu géré par la passerelle
  • Routage déterministe : les réponses retournent toujours vers Feishu
  • Isolation des sessions : les Messages prives partagent une session principale ; les groupes sont isolés
  • Connexion WebSocket : connexion longue via le SDK Feishu, aucune URL publique requise

Contrôle d’accès

Messages directs

  • Par défaut : dmPolicy: "pairing" (les utilisateurs inconnus reçoivent un code d’appairage)
  • Approuver l’appairage :
  • Mode liste d’autorisation : définissez channels.feishu.allowFrom avec les Open ID autorisés

Discussions de groupe

1. Politique de groupe (channels.feishu.groupPolicy) :
  • "open" = autoriser tout le monde dans les groupes (par défaut)
  • "allowlist" = autoriser uniquement groupAllowFrom
  • "disabled" = désactiver les messages de groupe
2. Exigence de mention (channels.feishu.groups.<chat_id>.requireMention) :
  • true = exiger une mention @ (par défaut)
  • false = répondre sans mention

Exemples de configuration des groupes

Autoriser tous les groupes, mention @ requise (par défaut)

Autoriser tous les groupes, sans mention @ requise

Autoriser uniquement des utilisateurs spécifiques dans les groupes


Obtenir les identifiants de groupe/utilisateur

Identifiants de groupe (chat_id)

Les identifiants de groupe ressemblent à oc_xxx. Méthode 1 (recommandée)
  1. Démarrez la passerelle et mentionnez le bot avec @ dans le groupe
  2. Exécutez openclaw logs --follow et recherchez chat_id
Méthode 2 Utilisez le débogueur de l’API Feishu pour lister les discussions de groupe.

Identifiants utilisateur (open_id)

Les identifiants utilisateur ressemblent à ou_xxx. Méthode 1 (recommandée)
  1. Démarrez la passerelle et envoyez un Message prive au bot
  2. Exécutez openclaw logs --follow et recherchez open_id
Méthode 2 Consultez les demandes d’appairage pour les Open ID des utilisateurs :

Commandes courantes

Remarque : Feishu ne prend pas encore en charge les menus de commandes natifs, les commandes doivent donc être envoyées sous forme de texte.

Commandes de gestion de la passerelle


Problemes courants

Le bot ne répond pas dans les discussions de groupe

  1. Assurez-vous que le bot est ajouté au groupe
  2. Assurez-vous de mentionner le bot avec @ (comportement par défaut)
  3. Vérifiez que groupPolicy n’est pas défini sur "disabled"
  4. Vérifiez les journaux : openclaw logs --follow

Le bot ne reçoit pas de messages

  1. Assurez-vous que l’application est publiée et approuvée
  2. Assurez-vous que l’abonnement aux événements inclut im.message.receive_v1
  3. Assurez-vous que la connexion longue est activée
  4. Assurez-vous que les permissions de l’application sont complètes
  5. Assurez-vous que la passerelle est en cours d’exécution : openclaw gateway status
  6. Vérifiez les journaux : openclaw logs --follow

Fuite de l’App Secret

  1. Réinitialisez l’App Secret dans Feishu Open Platform
  2. Mettez à jour l’App Secret dans votre configuration
  3. Redémarrez la passerelle

Échecs d’envoi de messages

  1. Assurez-vous que l’application dispose de la permission im:message:send_as_bot
  2. Assurez-vous que l’application est publiée
  3. Consultez les journaux pour des erreurs détaillées

Configuration avancée

Comptes multiples

Limites de messages

  • textChunkLimit : taille des segments de texte sortants (par défaut : 2000 caractères)
  • mediaMaxMb : limite de téléversement/téléchargement des médias (par défaut : 30 Mo)

Streaming

Feishu prend en charge les réponses en streaming via des cartes interactives. Lorsqu’il est activé, le bot met à jour une carte au fur et à mesure de la génération du texte.
Définissez streaming: false pour attendre la réponse complète avant l’envoi.

Routage multi-agents

Utilisez bindings pour router les Messages prives ou groupes Feishu vers différents agents.
Champs de routage :
  • match.channel : "feishu"
  • match.peer.kind: "direct" or "group"
  • match.peer.id : Open ID utilisateur (ou_xxx) ou identifiant de groupe (oc_xxx)
Voir Obtenir les identifiants de groupe/utilisateur pour des conseils de recherche.

Référence de configuration

Configuration complète : Configuration de la passerelle Options clés :

Référence dmPolicy


Types de messages pris en charge

Réception

  • ✅ Texte
  • ✅ Texte enrichi (post)
  • ✅ Images
  • ✅ Fichiers
  • ✅ Audio
  • ✅ Vidéo
  • ✅ Autocollants

Envoi

  • ✅ Texte
  • ✅ Images
  • ✅ Fichiers
  • ✅ Audio
  • ⚠️ Texte enrichi (prise en charge partielle)