Types de tâches
reCAPTCHA v3
Cette page a été traduite automatiquement à partir de la version chinoise et peut contenir des erreurs. La version chinoise fait foi.
reCAPTCHA v3 n’a ni case à cocher ni images : la page attribue un score aux visiteurs en arrière-plan. YesCaptcha renvoie un token (gRecaptchaResponse) que vous soumettez au site cible. RecaptchaV3TaskProxyless coûte 20 points (≈ $3.00 / 1k) par tâche et fonctionne en mode asynchrone : appelez createTask, puis getTaskResult toutes les 5 secondes. Les tâches en échec ou expirées donnent lieu à un remboursement de points automatique.
https://api.yescaptcha.com/createTaskEndpoint mondialhttps://cn.yescaptcha.com/createTaskEndpoint ChineLe corps de la requête est du JSON, authentifié avec votre clientKey. Interrogez le résultat sur le même endpoint que celui où vous avez créé la tâche.
Cas d’usage
Section intitulée « Cas d’usage »- Le code source de la page contient
grecaptcha.execute(...), ou chargerecaptcha/api.js?render=CLÉ_DU_SITE: reCAPTCHA v3 standard. - La page appelle
grecaptcha.enterprise.execute(...)ou chargerecaptcha/enterprise.js: reCAPTCHA v3 Enterprise. UtilisezRecaptchaV3EnterpriseTaskouRecaptchaV3EnterpriseTaskM1.
Pour les distinguer, consultez Identifier le type de captcha.
Types de tâche et prix
Section intitulée « Types de tâche et prix »| Type de tâche | Prix | Mode | Remarques |
|---|---|---|---|
RecaptchaV3TaskProxyless | $3.00 / 1k; 20 points/tâche · ¥20 / 1k | Asynchrone | |
RecaptchaV3TaskProxylessM1 | $3.75 / 1k; 25 points/tâche · ¥25 / 1k | Asynchrone | |
RecaptchaV3TaskProxylessM1S7 | $4.50 / 1k; 30 points/tâche · ¥30 / 1k | Asynchrone | Demande un score de 0.7 ; aucun paramètre supplémentaire n'est nécessaire |
RecaptchaV3TaskProxylessM1S9 | $5.25 / 1k; 35 points/tâche · ¥35 / 1k | Asynchrone | Demande un score de 0.9 ; aucun paramètre supplémentaire n'est nécessaire |
RecaptchaV3EnterpriseTask | $3.00 / 1k; 20 points/tâche · ¥20 / 1k | Asynchrone | |
RecaptchaV3EnterpriseTaskM1 | $3.75 / 1k; 25 points/tâche · ¥25 / 1k | Asynchrone |
Les prix en dollars américains sont des estimations avec 1 USD ≈ ¥6.67 ; les tâches sont facturées en points.
RecaptchaV3TaskProxylessetRecaptchaV3TaskProxylessM1acceptent les mêmes paramètres mais passent par des routes différentes ; vous pouvez utiliser l’un comme solution de secours de l’autre.- Si le site cible exige un score élevé, utilisez
RecaptchaV3TaskProxylessM1S7(0.7) ouRecaptchaV3TaskProxylessM1S9(0.9) : aucun paramètre supplémentaire n’est nécessaire.
Paramètres de la requête
Section intitulée « Paramètres de la requête »| Champ | Type | Obligatoire | Description |
|---|---|---|---|
type | string | Oui | Type de tâche ; voir « Types de tâches et prix » sur cette page |
websiteURL | string | Oui | URL complète de la page qui affiche le captcha. Indiquez le site sur lequel vous voyez le captcha, pas le domaine du fournisseur du captcha |
websiteKey | string | Oui | La clé du site (sitekey), à trouver dans le code source de la page ou dans les requêtes réseau ; elle ne change généralement pas |
pageAction | string | Non | L'action reCAPTCHA v3 ; elle doit correspondre à la valeur que la page transmet à grecaptcha.execute, sinon le token risque d'être rejeté |
pageAction doit correspondre à l’action que la page transmet à grecaptcha.execute(CLÉ_DU_SITE, {action: '...'}), sinon le site risque de rejeter le token. Pour le trouver, consultez Trouver les paramètres reCAPTCHA.
Exemple de requête
Section intitulée « Exemple de requête »{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "RecaptchaV3TaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "SITE_KEY_OF_THE_PAGE", "pageAction": "login" }}curl -s https://api.yescaptcha.com/createTask \ -H 'Content-Type: application/json' \ -d '{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "RecaptchaV3TaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "SITE_KEY_OF_THE_PAGE", "pageAction": "login" }}'
# Returns {"errorId":0,"taskId":"..."}; then poll every 5 seconds:curl -s https://api.yescaptcha.com/getTaskResult \ -H 'Content-Type: application/json' \ -d '{"clientKey": "YOUR_CLIENT_KEY", "taskId": "TASK_ID"}'import osimport time
import requests
API = "https://api.yescaptcha.com"CLIENT_KEY = os.environ["YESCAPTCHA_CLIENT_KEY"] # Read the clientKey from an environment variable
def call(method, payload): r = requests.post(f"{API}/{method}", json={"clientKey": CLIENT_KEY, **payload}, timeout=30) data = r.json() if data.get("errorId"): raise RuntimeError(f"{data.get('errorCode')}: {data.get('errorDescription')}") return data
def solve(task): task_id = call("createTask", {"task": task})["taskId"] for _ in range(36): # Poll every 5 seconds, for up to about 3 minutes time.sleep(5) result = call("getTaskResult", {"taskId": task_id}) if result.get("status") == "ready": return result["solution"] raise TimeoutError(task_id)
solution = solve({ "type": "RecaptchaV3TaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "SITE_KEY_OF_THE_PAGE", "pageAction": "login",})print(solution["gRecaptchaResponse"])const API = 'https://api.yescaptcha.com';const CLIENT_KEY = process.env.YESCAPTCHA_CLIENT_KEY; // Read the clientKey from an environment variable
async function call(method, payload) { const res = await fetch(`${API}/${method}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ clientKey: CLIENT_KEY, ...payload }), }); const data = await res.json(); if (data.errorId) throw new Error(`${data.errorCode}: ${data.errorDescription}`); return data;}
async function solve(task) { const { taskId } = await call('createTask', { task }); for (let i = 0; i < 36; i++) { // Poll every 5 seconds, for up to about 3 minutes await new Promise((r) => setTimeout(r, 5000)); const result = await call('getTaskResult', { taskId }); if (result.status === 'ready') return result.solution; } throw new Error(`timeout: ${taskId}`);}
const solution = await solve({ type: "RecaptchaV3TaskProxyless", websiteURL: "https://example.com/login", websiteKey: "SITE_KEY_OF_THE_PAGE", pageAction: "login",});console.log(solution.gRecaptchaResponse);Remplacez websiteURL, websiteKey et pageAction par les valeurs du site cible.
Résultat
Section intitulée « Résultat »{ "errorId": 0, "status": "ready", "solution": { "gRecaptchaResponse": "03AGdBq25SxXT-pmSeBXjzScW-EiocHwwpwqtk1QXlJnGnU..." }}| Champ | Type | Description |
|---|---|---|
gRecaptchaResponse | string | Le token à soumettre au site cible. Usage unique, valable environ 120 secondes ; utilisez-le dans les 60 secondes |
Pendant le traitement, la réponse est {"errorId": 0, "status": "processing"} ; interrogez à nouveau 5 secondes plus tard. En cas d’erreur, traitez-la selon errorCode, comme décrit dans Codes d’erreur. Pour savoir comment soumettre le token, consultez Valider un reCAPTCHA avec un token.
Pourquoi certains tokens sont-ils refusés par le site ?
Section intitulée « Pourquoi certains tokens sont-ils refusés par le site ? »Avec la v3, c’est le site cible qui décide d’après le score, et il peut modifier son seuil à tout moment : tous les tokens ne sont donc pas acceptés. Vérifiez que pageAction est correct, essayez M1S7 ou M1S9 si le site exige un score élevé, ou comparez avec d’autres types similaires.
Comment renseigner la version Enterprise de la v3 ?
Section intitulée « Comment renseigner la version Enterprise de la v3 ? »Comme pour la version standard : websiteURL, websiteKey, pageAction, avec le type RecaptchaV3EnterpriseTask ou RecaptchaV3EnterpriseTaskM1.
Combien de temps un token reste-t-il valide ?
Section intitulée « Combien de temps un token reste-t-il valide ? »Il est à usage unique et valable environ 120 secondes. Soumettez-le dans les 60 secondes.
Tutoriels associés
Section intitulée « Tutoriels associés »- Identifier le type de captcha
- Trouver les paramètres reCAPTCHA (dont la méthode pour
pageAction) - Valider un reCAPTCHA avec un token