Sommaire
Documentation › Bases

API de contrôle : piloter les bots de l'extérieur (scripts et IA)

L'interface HTTP locale de l'application — l'activer, copier le jeton, lire l'état et le journal, et charger, démarrer, mettre en pause et arrêter des bots depuis PowerShell, un programme à vous ou un assistant IA.

Dernière mise à jour: 2026-09-14

Après cet article, vous pouvez piloter FlowBotCommander de l'extérieur : depuis PowerShell, depuis un programme à vous ou depuis un assistant IA qui démarre et arrête vos bots par « function calling ». Aucune connaissance en programmation n'est nécessaire — les exemples ci-dessous se copient tels quels.

Ce qu'est l'API de contrôle

L'application contient un petit serveur HTTP. Il tourne uniquement sur votre ordinateur (adresse 127.0.0.1), est désactivé par défaut et ne laisse entrer personne sans votre jeton. Par cette interface, un script peut

  • interroger l'état (en cours, en pause, quel bot est chargé),
  • suivre le journal,
  • lister les bots du dossier des bots,
  • charger, démarrer, mettre en pause et arrêter un bot.

Ce qu'elle ne peut volontairement pas faire : modifier des bots, définir des variables ou créer des nœuds — cela reste dans l'éditeur. La touche panique (Pause) arrête le bot à tout moment, quoi que fasse l'API.

Étape 1 — Activer et copier le jeton

  1. Ouvrez le menu Outils → API de contrôle….
  2. Cochez Activer l'API de contrôle (opt-in).
  3. Laissez le port (8765) ou changez-le si un autre programme l'occupe.
  4. Cliquez sur Copier à côté du jeton — vous en aurez besoin tout de suite. Nouveau crée un jeton neuf ; l'ancien ne fonctionne plus.
  5. Appliquer. En bas apparaît « ● En cours sur http://127.0.0.1:8765 » et le journal reçoit une ligne 🌐 avec l'adresse.

La fenêtre API de contrôle avec la case, le port et le jeton

Le réglage est enregistré : au prochain démarrage de l'application, l'API tourne de nouveau jusqu'à ce que vous décochiez la case. Le jeton est stocké chiffré sur votre ordinateur — jamais dans un bot, jamais sur notre serveur.

Étape 2 — Placer les bots dans le dossier des bots

L'API liste et charge uniquement les bots du dossier %AppData%\FlowBotCommander\bots. Pour y aller : Win+R, tapez %AppData%\FlowBotCommander\bots, Entrée (créez le dossier la première fois). Enregistrez-y vos bots avec Fichier → Enregistrer sous… — chacun s'appelle nom.bot.json.

Étape 3 — La première requête

Ouvrez PowerShell et insérez votre jeton :

$token = "VOTRE-JETON-ICI"
$h = @{ Authorization = "Bearer $token" }

Invoke-RestMethod http://127.0.0.1:8765/api/health              # fonctionne sans jeton
Invoke-RestMethod -Headers $h http://127.0.0.1:8765/api/status  # tout le reste exige le jeton

La réponse de /api/status ressemble à ceci :

{ "running": false, "paused": false, "nodeCount": 6, "logCount": 12, "loadedBot": "clicker-heroes-komplett.bot.json" }

Le jeton va dans l'en-tête Authorization: Bearer <jeton> — avec une espace après « Bearer ». S'il manque ou s'il est faux, l'API répond 401 et {"error":"unauthorized"}.

Étape 4 — Charger, démarrer, mettre en pause, arrêter un bot

# Quels bots existent ?
Invoke-RestMethod -Headers $h http://127.0.0.1:8765/api/bots

# Charger un bot — nom avec ou sans .bot.json, une partie du nom suffit
Invoke-RestMethod -Headers $h -Method Post -ContentType "application/json" `
    -Body '{ "name": "clicker-heroes-komplett" }' http://127.0.0.1:8765/api/bot/load

# Démarrer
Invoke-RestMethod -Headers $h -Method Post http://127.0.0.1:8765/api/run

# Mettre en pause et reprendre
Invoke-RestMethod -Headers $h -Method Post -ContentType "application/json" `
    -Body '{ "paused": true }'  http://127.0.0.1:8765/api/pause
Invoke-RestMethod -Headers $h -Method Post -ContentType "application/json" `
    -Body '{ "paused": false }' http://127.0.0.1:8765/api/pause

# Arrêter
Invoke-RestMethod -Headers $h -Method Post http://127.0.0.1:8765/api/stop

Chaque action répond { "ok": true, "message": "…" } ou { "ok": false, "message": "raison" } — par exemple « Läuft bereits. » (déjà en cours) ou « Bot 'xyz' nicht gefunden. » (bot introuvable). Les messages sont actuellement en allemand.

Suivre le journal

/api/logs?since=N renvoie les lignes du journal à partir de la ligne N (0 = toutes). Retenez le nombre de lignes lues et repartez de là la fois suivante — vous ne recevez ainsi que le nouveau :

$lignes = Invoke-RestMethod -Headers $h "http://127.0.0.1:8765/api/logs?since=0"
$lignes.Count       # p. ex. 12
Invoke-RestMethod -Headers $h "http://127.0.0.1:8765/api/logs?since=12"   # seulement les nouvelles lignes

Tous les points de terminaison

Appel Rôle Jeton requis
GET /api/health signe de vie de l'application non
GET /api/status en cours/en pause, nombre de nœuds et de lignes de journal, bot chargé oui
GET /api/logs?since=N lignes du journal à partir de N oui
GET /api/bots bots du dossier des bots (nom, chemin, taille, date de modification) oui
POST /api/bot/load { "name": "…" } charger un bot dans l'éditeur oui
POST /api/run démarrer le bot chargé oui
POST /api/stop arrêter l'exécution oui
POST /api/pause { "paused": true/false } mettre en pause ou reprendre oui
GET /api/tools/openai manifeste function-calling prêt à l'emploi pour les assistants IA oui

Connecter un assistant IA

GET /api/tools/openai renvoie une liste d'outils prête à l'emploi au format OpenAI (« tools »). Elle décrit chaque fonction — get_status, get_logs, list_bots, load_bot, run_bot, stop_bot, pause_bot — de façon qu'un modèle de langage les appelle correctement de lui-même. Le montage habituel :

  1. Votre script récupère le manifeste et le transmet au service IA comme outils.
  2. Vous écrivez à l'IA : « Démarre le bot clicker-heroes-komplett et préviens-moi si une erreur apparaît dans le journal. »
  3. L'IA répond par un appel d'outil (p. ex. run_bot) ; votre script exécute la requête HTTP correspondante et renvoie le résultat.

L'application n'appelle elle-même aucun service IA — le pont entre l'IA et l'API, c'est votre script. Votre jeton reste ainsi sur votre ordinateur.

Sécurité

  • L'API n'est joignable que depuis votre propre ordinateur. Les autres appareils du réseau n'y accèdent pas — c'est voulu et cela ne se change pas.
  • Le jeton est comme un mot de passe : ne le transmettez pas, ne le mettez ni dans des bots ni dans des captures d'écran. En cas de doute, cliquez sur Nouveau puis Appliquer.
  • Désactivez l'API quand vous n'en avez pas besoin.
  • Pause arrête toujours le bot — même au milieu d'une action de l'API.

Si ça ne marche pas

  • « Connexion refusée » — l'API n'est pas activée, l'application ne tourne pas ou le port est différent (voir la fenêtre API de contrôle…).
  • 401 unauthorized — le jeton manque ou est faux, ou le mot « Bearer » manque dans l'en-tête.
  • Une ligne « ❌ Steuer-API : … » dans le journal en appliquant — le port est généralement occupé. Saisissez un autre port (p. ex. 8766) et appliquez de nouveau.
  • « Bot 'xyz' nicht gefunden. » — le bot n'est pas dans %AppData%\FlowBotCommander\bots ou porte un autre nom. GET /api/bots montre ce que voit l'API.
  • « Start nicht möglich (kein Start-Node?) » — le bot chargé n'a pas de nœud Démarrer ou tourne déjà.

Prêt à essayer ?

FlowBotCommander est gratuit pour commencer — sans compte.

Démarrer gratuitement