OpenClaw

Canal Nextcloud Talk OpenClaw

Entreprise
Moyen

Connectez OpenClaw a Nextcloud Talk, la plateforme de communication d'entreprise axee sur la confidentialite, integree a l'ecosysteme Nextcloud. L'integration utilise une architecture de bot basee sur les webhooks : Nextcloud Talk envoie les evenements de messages a votre Gateway via des webhooks, et le bot repond via l'API REST de Talk. Cela permet a votre assistant IA de participer aux messages directs, aux conversations de salon, et de reagir aux messages avec des emojis, le tout au sein de votre environnement Nextcloud auto-heberge.

Info rapide
DifficultéMoyen
CatégorieEntreprise
Fonctionnalités prises en charge4 / 6

Nextcloud Talk Fonctionnalités prises en charge

Messages texte

Pris en charge

Médias et fichiers

Pris en charge

Réactions

Pris en charge

Fils de discussion

Non pris en charge

Messages vocaux

Non pris en charge

Discussion de groupe

Pris en charge

Nextcloud Talk Prérequis

  • Un serveur Nextcloud (v27.1+) avec un acces administrateur et l'application Talk installee
  • Un secret partage (40-128 caracteres) pour la validation de la signature des webhooks
  • Le point de terminaison webhook du Gateway accessible depuis le serveur Nextcloud (URL publique ou reseau interne)
  • OpenClaw Gateway installe et en cours d'execution
  • Le plugin Nextcloud Talk installe via 'openclaw plugins install @openclaw/nextcloud-talk'

Nextcloud Talk Configuration rapide

1

Installer le plugin Nextcloud Talk

Executez 'openclaw plugins install @openclaw/nextcloud-talk' pour ajouter la prise en charge de Nextcloud Talk a votre Gateway.

2

Enregistrer le bot sur votre serveur Nextcloud

Connectez-vous en SSH a votre serveur Nextcloud et executez la commande OCC : ./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature reaction. Remplacez <shared-secret> par un secret robuste d'au moins 40 caracteres, et <webhook-url> par le point de terminaison webhook du Gateway accessible publiquement (par exemple, https://gateway.example.com:8788/webhook).

3

Activer le bot et configurer

Dans Nextcloud Talk, accedez aux parametres du salon et activez le bot OpenClaw. Ajoutez ensuite la configuration du canal dans ~/.openclaw/openclaw.json avec votre baseUrl et botSecret. Demarrez le Gateway avec 'openclaw start' et envoyez un message dans le salon pour verifier la connexion.

Nextcloud Talk Exemple de configuration

config.json
{
  "channels": {
    "nextcloud-talk": {
      "enabled": true,
      "baseUrl": "https://nextcloud.example.com",
      "botSecret": "your-shared-secret-min-40-chars",
      "dmPolicy": "pairing"
    }
  }
}

Nextcloud Talk Documentation Détaillée

Vue d'ensemble de l'architecture

OpenClaw s'integre a Nextcloud Talk via l'API Bot de Talk (disponible depuis Nextcloud 27.1). L'architecture est basee sur les webhooks : 1. Le bot est enregistre sur le serveur Nextcloud a l'aide de l'outil en ligne de commande OCC avec un secret partage et une URL de webhook. 2. Lorsqu'un message est publie dans un salon ou le bot est active, Nextcloud Talk envoie une requete HTTP POST a l'URL de webhook configuree avec le contenu du message, signe a l'aide du secret partage. 3. Le Gateway verifie la signature du webhook, traite le message via votre agent IA, et publie la reponse dans la conversation en utilisant l'API REST de Talk. Cette conception implique que le Gateway doit exposer un point de terminaison webhook accessible au serveur Nextcloud. Le serveur d'ecoute des webhooks fonctionne sur le port 8788 par defaut et peut etre personnalise via les options de configuration webhookPort et webhookHost.
L'URL du webhook doit etre accessible depuis le serveur Nextcloud. Pour le developpement local, utilisez un service de tunnel comme ngrok.
Chaque installation de bot genere un hash d'URL unique (bot-<hash>) utilise comme identifiant d'acteur pour les messages.

Enregistrement du bot via OCC

Les bots Nextcloud Talk sont enregistres sur le serveur a l'aide des commandes OCC (Nextcloud Command Console). Il s'agit d'une operation cote serveur qui necessite un acces SSH ou console. Pour installer le bot : ./occ talk:bot:install "OpenClaw" "<secret>" "<webhook-url>" --feature reaction Parametres : • name (requis) : Nom d'affichage affiche comme auteur du message (1-64 caracteres) • secret (requis) : Secret partage pour la validation de la signature des webhooks (40-128 caracteres) • url (requis) : URL du point de terminaison webhook de votre Gateway • --feature : Capacites du bot — utilisez 'reaction' pour activer les reactions par emoji • --no-setup : Empeche les moderateurs d'activer/desactiver le bot par salon Autres commandes OCC utiles : • talk:bot:list — Lister tous les bots installes • talk:bot:remove <bot-id> — Retirer un bot de conversations specifiques • talk:bot:setup <bot-id> <token> — Activer un bot dans une conversation • talk:bot:state <bot-id> <state> — Changer l'etat du bot (0=desactive, 1=active, 2=no-setup) • talk:bot:uninstall <id> — Supprimer completement un bot du serveur
Terminal
./occ talk:bot:install "OpenClaw" "a]72@Bz&V!LKMO*xhQib7p^E%yzGMG(8a7Bp*x6o" "https://gateway.example.com:8788/webhook" --feature reaction
Generez un secret partage robuste avec : openssl rand -base64 48
L'option --feature reaction est recommandee pour permettre au bot de reagir aux messages avec des emojis.

Politiques de messages directs

Les politiques de messages directs (DM) controlent la maniere dont le bot gere les conversations privees en tete-a-tete. **pairing (par defaut)** — Les expediteurs inconnus recoivent un code de jumelage qui doit etre verifie avant que le bot ne reponde. C'est le mode le plus securise, necessitant une autorisation explicite de l'utilisateur. **open** — Tout utilisateur qui envoie un message au bot recoit une reponse. Necessite de definir allowFrom sur ["*"]. **disabled** — Le bot ne repond pas du tout aux messages directs. Remarque : Les bots Nextcloud Talk ne peuvent pas initier de messages directs — l'utilisateur doit d'abord contacter le bot. Le champ allowFrom correspond aux identifiants utilisateur Nextcloud (et non aux noms d'affichage).
openclaw.json
{
  "channels": {
    "nextcloud-talk": {
      "dmPolicy": "pairing",
      "allowFrom": ["user-id-1", "user-id-2"]
    }
  }
}
Les bots ne peuvent pas initier de messages directs dans Nextcloud Talk. Les utilisateurs doivent contacter le bot en premier pour demarrer une conversation.

Configuration des salons

Les politiques de salon (discussion de groupe) controlent dans quelles conversations le bot participe et comment il est declenche. **allowlist (par defaut)** — Le bot ne repond que dans les salons ou il a ete explicitement active par un moderateur via les parametres du salon. La configuration par salon peut etre personnalisee a l'aide de l'objet rooms. Chaque salon est identifie par son jeton de conversation et peut avoir des parametres independants : • requireMention — Lorsque la valeur est true, le bot ne repond que lorsqu'il est @mentionne (comportement par defaut dans les salons) • Les salons non listes dans la configuration utilisent les parametres de salon par defaut Pour trouver le jeton d'un salon, consultez l'URL lors de la visualisation du salon dans Nextcloud Talk (par exemple, https://nextcloud.example.com/call/<token>).
openclaw.json
{
  "channels": {
    "nextcloud-talk": {
      "groupPolicy": "allowlist",
      "rooms": {
        "abc123token": {
          "requireMention": true
        },
        "def456token": {
          "requireMention": false
        }
      }
    }
  }
}
Un moderateur du salon doit activer le bot dans les parametres du salon avant qu'il puisse recevoir des messages.
Utilisez requireMention: true pour les salons a fort trafic afin d'eviter que le bot ne reponde a chaque message.

Identifiants API pour la detection du type de salon

Par defaut, le contenu du webhook provenant de Nextcloud Talk ne distingue pas les messages directs des messages de salon. Pour permettre une detection precise du type de salon, vous pouvez fournir des identifiants API. Lorsque apiUser et apiPassword sont configures, le Gateway effectue un appel API supplementaire pour determiner si un message entrant provient d'un message direct ou d'une conversation de salon. Cela permet au bot d'appliquer correctement les differentes politiques (dmPolicy vs groupPolicy). Sans identifiants API, le bot traite tous les messages selon une politique unifiee, ce qui peut etre suffisant pour les deployments simples.
openclaw.json
{
  "channels": {
    "nextcloud-talk": {
      "apiUser": "bot-service-account",
      "apiPassword": "service-account-password",
      "apiPasswordFile": "/run/secrets/nc-api-password"
    }
  }
}
Creez un compte utilisateur Nextcloud dedie pour les identifiants API plutot que d'utiliser un compte administrateur.
Utilisez apiPasswordFile pour charger le mot de passe depuis un fichier (par exemple, un secret Docker) au lieu de le stocker dans la configuration.
Sans identifiants API, le bot ne peut pas distinguer les messages directs des messages de salon. Cela peut empecher les politiques reservees aux messages directs de fonctionner correctement.

Configuration des webhooks

Le Gateway demarre un serveur HTTP integre pour recevoir les evenements webhook de Nextcloud Talk. La configuration du serveur d'ecoute des webhooks controle comment et ou le serveur ecoute. **webhookPort** (par defaut : 8788) — Le port du serveur HTTP de webhook. **webhookHost** (par defaut : 0.0.0.0) — L'interface a laquelle se lier. Utilisez 0.0.0.0 pour ecouter sur toutes les interfaces ou 127.0.0.1 pour localhost uniquement. **webhookPath** — Chemin d'URL personnalise pour le point de terminaison webhook. **webhookPublicUrl** — L'URL publique complete que Nextcloud doit utiliser pour atteindre le webhook. Requise lorsque le service est derriere un reverse proxy ou un NAT. L'URL du webhook fournie lors de l'installation du bot (commande OCC) doit correspondre a l'URL publique qui pointe vers ce serveur d'ecoute.
openclaw.json
{
  "channels": {
    "nextcloud-talk": {
      "webhookPort": 8788,
      "webhookHost": "0.0.0.0",
      "webhookPath": "/webhook",
      "webhookPublicUrl": "https://gateway.example.com:8788/webhook"
    }
  }
}
Si vous etes derriere un reverse proxy, definissez webhookPublicUrl sur l'URL accessible de l'exterieur.
Assurez-vous que votre pare-feu autorise les connexions entrantes sur le port webhook depuis le serveur Nextcloud.

Gestion des messages et streaming

OpenClaw offre un controle precis sur la maniere dont les messages sont decoupes et livres a Nextcloud Talk. **textChunkLimit** — Nombre maximal de caracteres par segment de message. Nextcloud Talk prend en charge les messages longs, mais le decoupage peut ameliorer la lisibilite des reponses IA volumineuses. **chunkMode** — Controle la maniere dont le texte est decoupe : 'length' decoupe a la limite de caracteres, 'newline' decoupe aux limites de paragraphe pour des coupures plus naturelles. **blockStreaming** — Lorsque cette option est activee, le bot attend la reponse complete de l'IA avant de l'envoyer, au lieu de diffuser des reponses partielles. **blockStreamingCoalesce** — Lorsque le block streaming est active, cette option combine la reponse finale en un seul message au lieu de plusieurs segments. **mediaMaxMb** — Taille maximale des fichiers (en Mo) pour les pieces jointes multimedia. Notez que Nextcloud Talk transmet les medias sous forme d'URL plutot que par telechargement direct de fichiers.
openclaw.json
{
  "channels": {
    "nextcloud-talk": {
      "textChunkLimit": 4000,
      "chunkMode": "newline",
      "blockStreaming": true,
      "blockStreamingCoalesce": true,
      "mediaMaxMb": 10
    }
  }
}
Utilisez blockStreaming: true pour des reponses plus propres dans les salons ou plusieurs utilisateurs sont actifs.
Les medias sont partages sous forme d'URL dans Nextcloud Talk — le bot ne peut pas telecharger de fichiers directement.

Historique des conversations

Controlez le nombre de messages precedents inclus comme contexte lorsque l'agent IA traite un nouveau message. **historyLimit** — Nombre maximal de messages precedents a inclure pour les conversations de salon. **dmHistoryLimit** — Nombre maximal de messages precedents a inclure pour les conversations par message direct. Cette valeur peut etre definie independamment de la limite d'historique des salons. Des surcharges par message direct sont egalement prises en charge, permettant de configurer des limites d'historique differentes pour des utilisateurs specifiques. Une limite d'historique plus elevee fournit plus de contexte a l'IA, mais augmente la consommation de tokens et le temps de traitement.
openclaw.json
{
  "channels": {
    "nextcloud-talk": {
      "historyLimit": 20,
      "dmHistoryLimit": 50
    }
  }
}

Prise en charge des reactions

Nextcloud Talk prend en charge les reactions par emoji sur les messages, et le bot OpenClaw peut a la fois lire et ajouter des reactions. Pour activer la prise en charge des reactions, le bot doit etre enregistre avec l'option --feature reaction lors de l'installation OCC. Une fois activee, l'agent IA peut reagir aux messages des utilisateurs avec des emojis pour fournir un accusee de reception ou un retour. Les reactions sont un moyen leger pour le bot d'interagir sans publier de reponses textuelles completes — par exemple, reagir avec un emoji coche pour confirmer une tache terminee. L'API de reactions de Nextcloud Talk (disponible depuis la capacite bots-v1) gere les mecanismes sous-jacents d'ajout et de suppression de reactions.
L'option --feature reaction doit etre definie lors de l'installation du bot pour que les reactions fonctionnent.
Les reactions peuvent etre utilisees comme mecanisme d'accusee de reception discret dans les salons a fort trafic.

Securite et signature des webhooks

Tous les contenus de webhook provenant de Nextcloud Talk sont signes a l'aide du secret partage configure lors de l'installation du bot. Le Gateway verifie chaque signature pour garantir l'authenticite et l'integrite. Le mecanisme de signature utilise HMAC-SHA256 : 1. Nextcloud calcule un hash HMAC-SHA256 du corps du contenu webhook en utilisant le secret partage. 2. La signature est incluse dans les en-tetes HTTP de la requete webhook. 3. Le Gateway calcule independamment le hash et le compare a la signature recue. 4. Si les signatures ne correspondent pas, la requete est rejetee. Cela garantit que seules les requetes legitimes provenant de votre serveur Nextcloud sont traitees. Gardez le secret partage confidentiel et renouvelez-le periodiquement en reinstallant le bot avec un nouveau secret.
Utilisez un secret cryptographiquement robuste : openssl rand -base64 48 genere une valeur appropriee.
Stockez le secret en utilisant botSecretFile pour eviter de le commiter dans le controle de version.
N'exposez jamais le secret partage dans des depots publics ou des journaux. Utilisez des variables d'environnement ou des fichiers de secrets pour les deployments en production.

Nextcloud Talk Référence de Configuration

enabled
Type: booleanDefault: true

Activer ou desactiver le canal Nextcloud Talk

baseUrl
Type: stringDefault: ""

URL complete de votre serveur Nextcloud (par exemple, https://nextcloud.example.com)

botSecret
Type: stringDefault: ""

Secret partage utilise pour la validation de la signature des webhooks (doit correspondre au secret de l'installation OCC)

botSecretFile
Type: stringDefault: ""

Chemin vers un fichier contenant le secret partage (alternative au botSecret en ligne)

apiUser
Type: stringDefault: ""

Nom d'utilisateur Nextcloud pour les appels API (utilise pour la detection du type de salon)

apiPassword
Type: stringDefault: ""

Mot de passe du compte utilisateur API

apiPasswordFile
Type: stringDefault: ""

Chemin vers un fichier contenant le mot de passe API (alternative au apiPassword en ligne)

dmPolicy
Type: stringDefault: "pairing"

Politique d'acces aux messages directs : 'pairing' (code de verification), 'open' (tout utilisateur), ou 'disabled' (pas de messages directs)

allowFrom
Type: string[]Default: []

Identifiants utilisateur Nextcloud autorises a envoyer des messages directs au bot (utilisez ["*"] pour un acces ouvert)

groupPolicy
Type: stringDefault: "allowlist"

Politique d'acces aux salons : 'allowlist' (uniquement les salons actives par un moderateur)

webhookPort
Type: numberDefault: 8788

Port du serveur HTTP de webhook integre

webhookHost
Type: stringDefault: "0.0.0.0"

Interface a laquelle lier le serveur de webhook

webhookPath
Type: stringDefault: "/webhook"

Chemin d'URL pour le point de terminaison webhook

webhookPublicUrl
Type: stringDefault: ""

URL publique complete pour le point de terminaison webhook (requise derriere un reverse proxy)

historyLimit
Type: numberDefault: 20

Nombre maximal de messages precedents inclus comme contexte pour les conversations de salon

dmHistoryLimit
Type: numberDefault: 50

Nombre maximal de messages precedents inclus comme contexte pour les conversations par message direct

textChunkLimit
Type: numberDefault: 4000

Nombre maximal de caracteres par segment de message

chunkMode
Type: stringDefault: "length"

Mode de decoupage du texte : 'length' (limite de caracteres) ou 'newline' (limites de paragraphe)

blockStreaming
Type: booleanDefault: false

Attendre la reponse complete de l'IA avant l'envoi (pas de streaming)

blockStreamingCoalesce
Type: booleanDefault: false

Combiner les segments de streaming en un seul message final

mediaMaxMb
Type: numberDefault: 10

Taille maximale des fichiers en Mo pour les references d'URL multimedia

Nextcloud Talk Questions Fréquentes

Nextcloud Talk Dépannage

Le bot ne repond pas aux messages

L'URL du webhook est inaccessible, le bot n'est pas active dans le salon, ou le secret partage ne correspond pas.

Verifiez que l'URL du webhook est accessible depuis le serveur Nextcloud (testez avec curl). Verifiez que le bot est active dans les parametres du salon. Assurez-vous que le botSecret dans openclaw.json correspond au secret utilise dans la commande OCC d'installation.
La verification de la signature du webhook echoue

Le secret partage dans openclaw.json ne correspond pas a celui utilise lors de l'installation du bot.

Verifiez que les deux secrets correspondent exactement. En cas de doute, desinstallez et reinstallez le bot avec un secret connu. Consultez les journaux du Gateway pour les erreurs de non-correspondance de signature.
Le bot repond dans les messages directs mais pas dans les salons

Le bot n'a pas ete active par un moderateur dans le salon cible, ou requireMention est defini sur true et le bot n'a pas ete @mentionne.

Demandez a un moderateur du salon d'activer le bot dans les parametres du salon. Si requireMention est configure, assurez-vous que les utilisateurs @mentionnent le nom du bot. Verifiez la configuration des salons dans openclaw.json.
Impossible de distinguer les messages directs des messages de salon

Les identifiants API (apiUser, apiPassword) ne sont pas configures.

Ajoutez apiUser et apiPassword a la configuration de votre canal nextcloud-talk. Creez un compte de service Nextcloud dedie a cet effet. Le Gateway utilise ces identifiants pour interroger l'API Talk afin de detecter le type de conversation.
Le Gateway ne parvient pas a demarrer le serveur d'ecoute des webhooks

Le port webhook configure est deja utilise ou la liaison a l'interface est invalide.

Changez webhookPort pour un port disponible (par defaut : 8788). Si vous liez a une interface specifique, verifiez que l'adresse IP de webhookHost est correcte. Recherchez les conflits de ports avec 'lsof -i :8788' ou 'netstat -tlnp'.