Périmètre sûr : Ce guide s'applique exclusivement à vos propres applications ou à des systèmes pour lesquels vous disposez d'une autorisation écrite. Il ne décrit ni l'automatisation de sites tiers, ni le contournement de protections, ni l'évasion d'anti-bot.
Un pipeline de résolution CAPTCHA qui survit à la production repose sur trois piliers : erreurs typées, tentatives bornées et appels tracés de bout en bout. Effect TS fournit les trois au niveau du système de types, transformant un script fragile en service prévisible. Voici comment le structurer autour de l'API CaptchaAI, avec un exemple Node.js.
Ce qu'apporte Effect TS à ce pipeline
Chaque appel à CaptchaAI peut échouer de plusieurs façons ; Effect vous force à les modéliser :
- Erreurs typées : réseau indisponible, clé invalide ou tâche non résolue deviennent des cas distincts du système de types, pas des exceptions silencieuses.
- Tentatives bornées : le planificateur
Scheduleexprime le backoff exponentiel et le plafond de tentatives sans boucle manuelle. - Appels tracés : chaque effet porte sa durée et son code retour, prêts pour le tableau de bord.
Préparer un environnement de test isolé
Isolez l'environnement avant d'écrire la moindre logique :
- Une QA séparée de la production, dont les endpoints acceptent le trafic de test.
- La clé CaptchaAI dans un coffre ou un secret CI, jamais dans le dépôt.
- Pour l'UE, un worker OVHcloud ou Scaleway (région Paris, eu-west-3) pour la latence.
Encapsuler l'appel : exemple Turnstile
Enfermez l'appel dans une fonction réutilisable, partagée entre tests et jobs planifiés. L'exemple Node.js ci-dessous crée une tâche Turnstile et renvoie son identifiant — le cœur de votre effet Effect TS :
import fetch from 'node-fetch';
const API_KEY = process.env.CAPTCHAAI_KEY;
export async function createTurnstileTask(siteKey, pageUrl) {
const res = await fetch('https://api.captchaai.com/createTask', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
clientKey: API_KEY,
task: {
type: 'TurnstileTaskProxyless',
websiteURL: pageUrl,
websiteKey: siteKey,
},
}),
});
const data = await res.json();
return data.taskId;
}
Vérifier le token côté backend
Le token renvoyé doit être validé par votre backend avant toute opération métier : cela bloque toute requête fondée sur un token périmé ou contrefait. Côté Effect, modélisez ce rejet comme une erreur distincte de l'échec de résolution — nouvelle tentative pour l'un, alerte pour l'autre.
Observabilité et journalisation
Instrumentez chaque appel pour obtenir des signaux exploitables. Séparez les journaux par environnement et appliquez la minimisation du RGPD : consignez des identifiants techniques, jamais de données personnelles.
| Signal à instrumenter | Où l'exploiter |
|---|---|
| Durée d'obtention du token | Tableaux de bord de QA |
| Code retour HTTP | Règles d'alerte |
| Identifiant de tâche | Traçage OpenTelemetry (rejeu de scénario) |
Dépannage
Ces erreurs couvrent l'essentiel des tickets ; chacune se corrige sans quitter l'éditeur.
| Symptôme | Cause probable | Correctif |
|---|---|---|
ERROR_WRONG_USER_KEY |
Espace parasite ou mauvais compte | Recopiez la clé, stockez-la en secret CI |
ERROR_ZERO_BALANCE |
Solde sous le minimum par tâche | Rechargez et ajoutez une alerte de solde |
ERROR_BAD_PARAMETERS |
Paramètre absent ou mal formé | Revalidez l'URL et la sitekey contre le HTML réel |
| Token refusé après résolution | Token appliqué dans une autre session | Gardez résolution et soumission dans le même contexte |
Liste de contrôle avant mise en production
- La clé CaptchaAI vit dans un secret CI ou un coffre, jamais dans le code source.
- Les durées d'appel et les codes retour sont tracés à chaque exécution.
- Le backoff exponentiel est borné (trois tentatives, plafond explicite) via
Schedule. - Les tests restent rejouables et reproductibles depuis votre CI.
FAQ
Ai-je besoin d'Effect TS pour intégrer CaptchaAI ?
Non. L'API CaptchaAI est un simple appel HTTP ; n'importe quel client suffit. Effect TS ajoute les erreurs typées, le retry déclaratif et l'observabilité, et la même logique se transpose vers Go, Python ou Java.
Quels CAPTCHA ce pipeline peut-il résoudre ?
CaptchaAI prend en charge reCAPTCHA v2 et v3, Cloudflare Turnstile et Challenge, GeeTest v3 et les CAPTCHA image/OCR et en grille, plus CaptchaFox (bêta), Friendly Captcha (bêta) et Lemin (bêta). hCaptcha et FunCaptcha ne sont pas pris en charge ; GeeTest v4 est annoncé mais pas encore disponible. Changez le type de tâche, pas la structure.
Comment sécuriser la clé API dans un pipeline CI ?
Stockez-la comme secret chiffré de votre CI et injectez-la à l'exécution via une variable d'environnement. Ne la committez jamais ; faites-la tourner en cas de fuite. Le modèle par threads de CaptchaAI (à partir de BASIC, $15/mois, 5 threads) se facture au compte : une clé compromise pèse sur tout votre solde.
Ce guide autorise-t-il l'automatisation de sites tiers ?
Non. Tous les exemples portent sur vos propres applications ou des environnements autorisés. Aucune technique de contournement n'est décrite ; pour une source externe, validez d'abord les conditions d'utilisation.
Guides connexes
- Démarrage rapide CaptchaAI
- Tests QA CAPTCHA autorisés
- Tester l'endpoint API sur vos formulaires
- Intégrer la résolution CAPTCHA en CI
- Résoudre reCAPTCHA v2 via l'API
Passez d'un script fragile à un pipeline mesurable et reproductible. – Créez votre clé CaptchaAI.