Skip to content
API
Facebook Captcha

Facebook Captcha

Tổng quan

Facebook Captcha là hệ thống bảo mật được Facebook sử dụng để ngăn chặn spam, bot và các hoạt động tự động không mong muốn. Đây là loại captcha chữ có font chữ đặc trưng của Facebook.

📘

Facebook Captcha thường xuất hiện khi đăng nhập, đăng ký tài khoản mới, hoặc khi Facebook phát hiện hoạt động bất thường từ tài khoản của bạn.

Facebook Captcha

1. Tạo yêu cầu

Request

POST https://api.achicaptcha.com/createTask

Tham số

Tên paramKiểu dữ liệuBắt buộc?Mô tả
clientKeystringyesApi key
task.typestringyesImageToTextTask
task.imagestringyesbase64 của hình ảnh captcha Facebook
task.subTypestringyesfacebook

Ví dụ Request

POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "API_KEY của bạn",
  "task": {
    "type": "ImageToTextTask",
    "image": "base64 encoded của ảnh Facebook captcha",
    "subType": "facebook"
  }
}

Response

Khi thành công, server sẽ trả về errorId = 0taskId

{
  "errorId": 0,
  "taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}

2. Lấy kết quả

Request

POST https://api.achicaptcha.com/getTaskResult

Tham số

Tên paramKiểu dữ liệuBắt buộc?Mô tả
clientKeystringyesApi key
taskIdstringyesTaskId lấy từ (1)

Ví dụ Request

POST /getTaskResult HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "API_KEY của bạn",
  "taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}

Response

{
  "errorId": 0,
  "status": "ready",
  "solution": "2m7k8x"
}

Giải thích trạng thái

  • errorId = 0status = ready: Giải thành công, đọc kết quả trong solution
  • errorId = 0status = processing: Đang giải captcha, đợi 2 giây rồi thử lại
  • errorId > 0: Lỗi hệ thống, đưa ra mã lỗi và mô tả lỗi

Ví dụ tích hợp

import requests
import time
import base64
 
def solve_facebook_captcha(image_path, api_key='YOUR_API_KEY'):
    # Đọc và encode hình ảnh
    with open(image_path, 'rb') as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')
    
    # Bước 1: Tạo task
    create_task_url = 'https://api.achicaptcha.com/createTask'
    create_task_payload = {
        'clientKey': api_key,
        'task': {
            'type': 'ImageToTextTask',
            'image': image_base64,
            'subType': 'facebook'
        }
    }
    
    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']
    
    # Bước 2: Lấy kết quả
    get_result_url = 'https://api.achicaptcha.com/getTaskResult'
    
    while True:
        time.sleep(2)  # Đợi 2 giây
        
        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']
        
        # Nếu status == 'processing', tiếp tục loop
 
# Sử dụng
solution = solve_facebook_captcha('facebook_captcha.png', 'YOUR_API_KEY')
print('Kết quả Facebook captcha:', solution)

Các mã lỗi thường gặp

Mã lỗiMô tảChú thích
0successThành công
1processingĐang xử lý
2missing required fieldsThiếu trường bắt buộc, kiểm tra lại tham số
3task not supportedLoại task không được hỗ trợ
4task creation failedTạo task thất bại
5client key does not existAPI key không tồn tại, kiểm tra lại API key
6insufficient account balanceSố dư tài khoản không đủ, nạp thêm credit
7task failed, please create a new taskTask thất bại, vui lòng tạo task mới
8task ID does not existTask ID không tồn tại

Best Practices

Để đạt hiệu quả tốt nhất khi sử dụng API Achicaptcha, hãy tuân thủ các nguyên tắc sau:

1. Chất lượng hình ảnh

  • Sử dụng hình ảnh có độ phân giải tốt
  • Đảm bảo hình ảnh không bị mờ hoặc nhiễu quá mức
  • Chụp hoặc crop đúng vùng captcha của Facebook

2. Polling interval

  • Đợi ít nhất 2 giây giữa các lần kiểm tra kết quả
  • Không spam API với quá nhiều request liên tiếp
  • Có timeout để tránh vòng lặp vô hạn

3. Retry logic

  • Implement retry cho các lỗi tạm thời như ERROR_NO_SLOT_AVAILABLE
  • Sử dụng exponential backoff khi retry
  • Giới hạn số lần retry tối đa

4. Bảo mật API key

  • Không hardcode API key trong code
  • Sử dụng biến môi trường
  • Không expose API key ra client-side

Liên kết hữu ích: