Temu Grid Captcha
Tổng quan
Temu Grid Captcha là loại captcha chọn ô lưới: trang hiển thị một lưới ô và solver phải trả về các ô cần nhấp (chỉ số 0-based, theo hàng: trái sang phải, trên xuống dưới).
🔲
Trường task.image mã hóa ảnh lưới dưới dạng một chuỗi Base64 duy nhất. Không cần trường other bổ sung.

1. Tạo yêu cầu
Định dạng gửi ảnh
Ảnh lưới

Request
POST https://api.achicaptcha.com/createTask
Tham số
| Tên tham số | Kiểu dữ liệu | Bắt buộc? | Mô tả |
|---|---|---|---|
clientKey | string | yes | API key |
task.type | string | yes | GridCaptcha |
task.subType | string | yes | temu |
task.image | string | yes | Ảnh lưới mã hóa Base64 |
Ví dụ Request
POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "GridCaptcha",
"subType": "temu",
"image": "BASE64_GRID_IMAGE"
}
}Phản hồi
Khi thành công, server trả về errorId = 0 và taskId
{
"errorId": 0,
"taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}2. Lấy kết quả
Request
POST https://api.achicaptcha.com/getTaskResult
Tham số
| Tên tham số | Kiểu dữ liệu | Bắt buộc? | Mô tả |
|---|---|---|---|
clientKey | string | yes | API key |
taskId | string | yes | TaskId lấy từ bước (1) |
Ví dụ Request
POST /getTaskResult HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}Phản hồi
{
"errorId": 0,
"status": "ready",
"solution": {
"click": "0,2,5"
}
}solution.click là chuỗi chỉ số ô 0-based phân cách bằng dấu phẩy (theo hàng) cần nhấp vào lưới.
Giải thích trạng thái
errorId = 0vàstatus = ready: Giải thành công, đọc chỉ số ô trongsolution.clickerrorId = 0vàstatus = processing: Đang giải, chờ 2 giây rồi thử lạierrorId > 0: Lỗi hệ thống, kiểm traerrorCodevàerrorDescription
Ví dụ tích hợp
import requests
import base64
import time
def solve_temu(grid_path, api_key='YOUR_API_KEY'):
with open(grid_path, 'rb') as f:
grid_b64 = base64.b64encode(f.read()).decode()
# Bước 1: Tạo task
create_resp = requests.post(
'https://api.achicaptcha.com/createTask',
json={
'clientKey': api_key,
'task': {
'type': 'GridCaptcha',
'subType': 'temu',
'image': grid_b64
}
}
)
result = create_resp.json()
if result['errorId'] != 0:
raise Exception(result['errorDescription'])
task_id = result['taskId']
# Bước 2: Lấy kết quả
while True:
time.sleep(2)
poll_resp = requests.post(
'https://api.achicaptcha.com/getTaskResult',
json={'clientKey': api_key, 'taskId': task_id}
)
result = poll_resp.json()
if result['errorId'] != 0:
raise Exception(result['errorDescription'])
if result['status'] == 'ready':
return result['solution']['click'] # ví dụ: "0,2,5"
# Sử dụng
indices = solve_temu('grid.jpg', 'YOUR_API_KEY')
print('Các ô cần nhấp:', indices)Các mã lỗi thường gặp
| Mã lỗi | Mô tả | Chú thích |
|---|---|---|
| 0 | success | Thành công |
| 1 | processing | Đang xử lý |
| 2 | missing required fields | Thiếu trường bắt buộc, kiểm tra lại tham số |
| 3 | task not supported | Loại task không được hỗ trợ |
| 4 | task creation failed | Tạo task thất bại |
| 5 | client key does not exist | API key không tồn tại, kiểm tra lại API key |
| 6 | insufficient account balance | Số dư tài khoản không đủ, nạp thêm credit |
| 7 | task failed, please create a new task | Task thất bại, vui lòng tạo task mới |
| 8 | task ID does not exist | Task ID không tồn tại |
Thực tiễn tốt nhất
Để đạt kết quả tốt nhất khi sử dụng Achicaptcha API cho Temu Grid Captcha, hãy tuân thủ các nguyên tắc sau:
1. Mã hóa ảnh
- Chỉ gửi ảnh lưới dưới dạng một chuỗi Base64 duy nhất
- Không bao gồm tiền tố
data:image/...;base64,— chỉ dùng Base64 thuần - Đảm bảo ảnh đã được tải và mã hóa đầy đủ trước khi gửi
2. Khoảng thời gian polling
- Chờ ít nhất 2 giây giữa các lần kiểm tra kết quả
- Không spam API với nhiều request liên tiếp
- Đặt timeout để tránh vòng lặp vô hạn (khuyến nghị: 60 giây)
3. Xử lý kết quả
solution.clicklà chuỗi chỉ số ô 0-based phân cách bằng dấu phẩy (theo hàng, trái sang phải, trên xuống dưới)- Tách theo
,và chuyển sang số nguyên trước khi nhấp vào các ô lưới tương ứng
4. Logic retry
- 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
5. Bảo mật API key
- Không hardcode API key trong code
- Sử dụng biến môi trường hoặc secrets manager
- Không expose API key ở phía client
Liên kết hữu ích: