Image Funcaptcha
Aperçu
FunCaptcha (également connu sous le nom de Captcha Arkose Labs) est un type de captcha interactif qui exige que les utilisateurs effectuent des actions telles que faire pivoter des images, glisser-déposer des objets pour résoudre des défis. Il est utilisé par de nombreux sites web majeurs tels que Roblox, Epic Games, Outlook, etc.
FunCaptcha est conçu à la fois pour protéger contre les bots et créer une expérience "amusante" pour les utilisateurs grâce à des mini-jeux interactifs.

1. Créer une Tâche
Requête
POST https://api.achicaptcha.com/createTask
Paramètres
| Nom du Paramètre | Type de Données | Requis ? | Description |
|---|---|---|---|
clientKey | string | oui | Clé API |
task.type | string | oui | FuncaptchaImageTask |
task.subType | string | oui | Valeur égale à 1 |
task.image | string | oui | Base64 de l'image |
task.other | string | oui | Question Exemple : "Utilisez les flèches pour faire pivoter l'objet afin qu'il soit orienté dans la direction de la main" |
Exemple de Requête
POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
{
"clientKey": "VOTRE_API_KEY",
"task": {
"type": "FuncaptchaImageTask",
"subType": "1",
"image": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...",
"other": "Utilisez les flèches pour faire pivoter l'objet afin qu'il soit orienté dans la direction de la main"
}
}Réponse
En cas de succès, le serveur renvoie errorId = 0 et taskId
{
"errorId": 0,
"taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}2. Obtenir le Résultat
Requête
POST https://api.achicaptcha.com/getTaskResult
Paramètres
| Nom du Paramètre | Type de Données | Requis ? | Description |
|---|---|---|---|
clientKey | string | oui | Clé API |
taskId | string | oui | TaskId obtenu de (1) |
Exemple de Requête
POST /getTaskResult HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
{
"clientKey": "VOTRE_API_KEY",
"taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}Réponse
{
"errorId": 0,
"status": "ready",
"solution": "1" // Index de l'image à cliquer (Commençant à 0)
}Explication du Statut
errorId = 0etstatus = ready: Résolu avec succès, lire le résultat danssolution.answer(tableau d'indices d'images)errorId = 0etstatus = processing: Résolution du captcha en cours, attendre 2 secondes et réessayererrorId > 0: Erreur système, renvoie le code d'erreur et la description de l'erreur
Exemples d'Intégration
import requests
import time
def solve_funcaptcha_image(image_base64, question, api_key='YOUR_API_KEY'):
# Étape 1 : Créer une tâche
create_task_url = 'https://api.achicaptcha.com/createTask'
create_task_payload = {
'clientKey': api_key,
'task': {
'type': 'FuncaptchaImageTask',
'subType': '1',
'image': image_base64,
'other': question
}
}
response = requests.post(create_task_url, json=create_task_payload)
result = response.json()
if result['errorId'] != 0:
raise Exception(result['errorDescription'])
task_id = result['taskId']
# Étape 2 : Obtenir le résultat
get_result_url = 'https://api.achicaptcha.com/getTaskResult'
while True:
time.sleep(2) # Attendre 2 secondes
get_result_payload = {
'clientKey': api_key,
'taskId': task_id
}
response = requests.post(get_result_url, json=get_result_payload)
result = response.json()
if result['errorId'] != 0:
raise Exception(result['errorDescription'])
if result['status'] == 'ready':
return result['solution']
# Si status == 'processing', continuer la boucle
# Utilisation
image_base64 = '/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...' # Base64 de l'image
question = 'Utilisez les flèches pour faire pivoter l\'objet afin qu\'il soit orienté dans la direction de la main'
solution = solve_funcaptcha_image(image_base64, question, 'YOUR_API_KEY')
print('Solution FunCaptcha:', solution)Codes d'Erreur Courants
| Code d'Erreur | Description | Notes |
|---|---|---|
| 0 | succès | Succès |
| 1 | en traitement | En traitement |
| 2 | champs requis manquants | Champs requis manquants, vérifier à nouveau les paramètres |
| 3 | tâche non prise en charge | Type de tâche non pris en charge |
| 4 | échec de création de tâche | Échec de création de tâche |
| 5 | clé client inexistante | La clé API n'existe pas, vérifier à nouveau la clé API |
| 6 | solde de compte insuffisant | Solde de compte insuffisant, ajouter plus de crédits |
| 7 | tâche échouée, veuillez créer une nouvelle tâche | Tâche échouée, veuillez créer une nouvelle tâche |
| 8 | ID de tâche inexistant | L'ID de tâche n'existe pas |
Meilleures Pratiques
Pour obtenir les meilleurs résultats lors de l'utilisation de l'API Achicaptcha pour FunCaptcha Image, suivez ces principes :
1. Traitement de l'Image Base64
- N'accepte qu'une seule image. Pour les utilisateurs de téléphone, fusionner en une grande image avant l'envoi
- S'assurer que l'image est correctement encodée au format Base64
- Supprimer le préfixe
data:image/...;base64,s'il est présent - Vérifier que la taille de l'image est raisonnable (pas trop grande)
2. Question
- Fournir la question exacte du défi FunCaptcha
- La question aide le système à mieux comprendre le type de défi
- Exemple : "Utilisez les flèches pour faire pivoter l'objet afin qu'il soit orienté dans la direction de la main"
3. Intervalle de Polling
- Attendre au moins 2 secondes entre les vérifications de résultat
- Ne pas spammer l'API avec trop de requêtes consécutives
- Définir un timeout pour éviter les boucles infinies (recommandé 60 secondes pour les tâches d'image)
4. Traitement du Résultat
- Le résultat renvoyé est un nombre unique (index commençant à 0)
- Utiliser ce résultat pour soumettre à FunCaptcha
5. Logique de Réessai
- Implémenter un réessai pour les erreurs temporaires comme
ERROR_NO_SLOT_AVAILABLE - Utiliser un backoff exponentiel lors du réessai
- Limiter le nombre maximum de tentatives de réessai
6. Sécurité de la Clé API
- Ne pas coder en dur la clé API dans le code
- Utiliser des variables d'environnement
- Ne pas exposer la clé API côté client
Liens utiles :