Integrations

Intégrer l'extension CaptchaAI à un workflow Puppeteer

Périmètre sûr : Ce guide couvre uniquement vos propres applications, vos environnements de QA ou de production et les systèmes pour lesquels vous détenez une autorisation écrite. Il ne traite ni de l'automatisation de sites tiers, ni de l'évasion de protections anti-bot.

L'extension CaptchaAI tient sur la durée lorsqu'elle est pilotée comme un workflow de navigateur reproductible, pas comme un simple bouton que l'on active une fois. C'est précisément là que démarre la plupart des confusions côté extension, et là que la charge de support disparaît. L'enjeu : qu'une intégration qui fonctionne en cinq minutes tienne aussi en CI, dans une tâche planifiée et derrière une file d'attente interne. Associée à Puppeteer, l'extension doit conserver trois choses stables d'une exécution à l'autre :

  • l'état du compte ;
  • le profil de navigateur isolé ;
  • le handler CAPTCHA sélectionné.

Une architecture qui encaisse les montées de version

Votre composant interne appelle CaptchaAI en HTTPS pour récupérer un token, puis l'injecte dans votre formulaire ou votre route d'API, dans la session de navigateur qui a déclenché le défi. Appliquer le token dans un autre contexte reste la première cause de rejet après résolution. Tracez chaque étape — soumission, interrogation, injection, acceptation en aval — pour repérer les régressions dès la prochaine montée de version, avant la production.

Où stocker la clé API CaptchaAI

La clé CaptchaAI n'a rien à faire dans le code source. Conservez-la dans un coffre (HashiCorp Vault, AWS Secrets Manager, Azure Key Vault) ou dans un secret de votre chaîne CI, puis montez-la en variable d'environnement au runtime. Cette séparation permet de faire tourner la clé sans redéployer et évite qu'elle ne fuite dans un journal ou un historique de commits. Prévoyez aussi une alerte de solde : une clé valide sur un compte à sec échoue comme une clé absente.

Instrumenter les appels et la journalisation

Instrumentez les appels CAPTCHA pour obtenir des métriques exploitables : durée d'obtention du token, code retour HTTP, identifiant de tâche et taille de la file interne. Ces signaux alimentent vos tableaux de bord de QA et déclenchent vos alertes.

Séparez les journaux par environnement (développement, préproduction, production) et corrélez chaque identifiant à votre traçage distribué, par exemple via OpenTelemetry. Vous pouvez alors rejouer un scénario complet depuis un identifiant unique, ce qui divise par deux le temps de diagnostic. Une équipe QA qui déploie ses workers sur Scaleway ou OVHcloud (latence mesurée depuis eu-west-3 Paris) a intérêt à n'y conserver que le strict nécessaire : minimisez les données personnelles enregistrées pour rester aligné sur vos obligations RGPD.

Exemple : créer une tâche Turnstile côté serveur

Un appel HTTP côté serveur, dans votre propre service, qui soumet une tâche Cloudflare Turnstile et renvoie l'identifiant de tâche à interroger :

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;
}

Liste de contrôle avant la mise en production

  1. Le périmètre reste strictement limité à vos propres applications ou à des sources autorisées.
  2. La clé CaptchaAI vit dans un coffre ou un secret CI, jamais dans le code source.
  3. Les durées d'appel et les codes retour sont tracés pour chaque exécution.
  4. Une stratégie de retry idempotent, avec backoff exponentiel borné, couvre les erreurs transitoires.
  5. Les tests sont rejouables et reproductibles depuis votre intégration continue.

FAQ

L'extension CaptchaAI fonctionne-t-elle en mode headless ?

Non : le chargement d'une extension Chrome exige un contexte de navigateur affiché (headless: false). Sur un serveur sans écran, prévoyez un affichage virtuel (Xvfb) ou basculez vers un appel direct à l'API CaptchaAI quand le rendu de page n'est pas nécessaire.

Pourquoi le token est-il refusé alors que la résolution a réussi ?

Neuf fois sur dix, le token a été appliqué dans une session différente de celle qui a déclenché le défi. Gardez la résolution et l'envoi du formulaire dans le même contexte de navigateur — mêmes cookies, même client — et vérifiez que le token n'a pas expiré avant l'injection.

Comment garder le profil de navigateur propre entre deux exécutions ?

Utilisez un répertoire de profil dédié (userDataDir), restauré à l'identique avant chaque campagne. Un profil isolé évite qu'un état résiduel — cookies, cache, session précédente — ne fausse le comportement du handler CAPTCHA d'une exécution sur l'autre.

Comment évolue le coût quand le volume augmente ?

La facturation CaptchaAI repose sur les threads concurrents, pas sur le nombre de résolutions : le plan BASIC ($15/mois, 5 threads) inclut des résolutions illimitées par thread. À l'échelle, ce sont les boucles de mauvais paramètres et les tempêtes de retry qui font grimper la note, pas le volume.

Guides connexes

Fiabilisez vos workflows CAPTCHA avec une approche méthodique et reproductible. — Obtenez votre clé CaptchaAI.

Les commentaires sont désactivés pour cet article.