Tham chiếu API
createTask – Tạo tác vụ
Trang này được dịch máy từ bản tiếng Trung và có thể có sai sót. Nội dung theo bản tiếng Trung.
createTask tạo một tác vụ nhận dạng; task.type cho biết cần giải loại captcha nào. Loại bất đồng bộ trả về taskId, sau đó dùng getTaskResult để lấy kết quả; loại đồng bộ trả về kết quả trực tiếp.
POST
https://api.yescaptcha.com/createTaskEndpoint quốc tếPOST
https://cn.yescaptcha.com/createTaskEndpoint Trung QuốcTham số yêu cầu
Phần tiêu đề “Tham số yêu cầu”| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
clientKey |
string | Có | Khóa tài khoản, sao chép trong bảng điều khiển tại yescaptcha.com |
task |
object | Có | Đối tượng tác vụ, bắt buộc có type; các trường khác điền theo loại tác vụ, xem từng trang loại tác vụ |
softID |
integer | Không | ID nhà phát triển. Khi phần mềm bạn phát triển được người khác sử dụng, hãy kèm theo ID này để nhận chia sẻ doanh thu, xem Chia sẻ doanh thu cho nhà phát triển |
Ví dụ yêu cầu
Phần tiêu đề “Ví dụ yêu cầu”Nhận dạng một captcha hình ảnh (đồng bộ):
{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "ImageToTextTaskOcrBase", "body": "BASE64_IMAGE" }}Lấy token reCAPTCHA v2 (bất đồng bộ):
{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "NoCaptchaTaskProxyless", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" }}Các trường task của từng loại tác vụ có trong các trang thuộc Loại tác vụ và giá.
Kết quả trả về
Phần tiêu đề “Kết quả trả về”Loại bất đồng bộ:
{ "errorId": 0, "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"}Hãy lưu lại taskId, sau 5 giây bắt đầu gọi getTaskResult để truy vấn.
Loại đồng bộ:
{ "errorId": 0, "status": "ready", "taskId": "2376919c-1863-11ec-a012-94e6f7355a0b", "solution": { "text": "LMResm" }}Thất bại:
{ "errorId": 1, "errorCode": "ERROR_TASK_NOT_SUPPORTED", "errorDescription": "任务类型不正确或不受支持"}Thứ tự kiểm tra
Phần tiêu đề “Thứ tự kiểm tra”Máy chủ kiểm tra yêu cầu theo thứ tự sau và trả về mã lỗi tương ứng ngay khi gặp vấn đề đầu tiên, không trừ điểm:
- Nội dung yêu cầu là JSON hợp lệ:
ERROR_REQUEST_FORMATS - Có
clientKey:ERROR_REQUIRED_FIELDS clientKeytồn tại:ERROR_KEY_DOES_NOT_EXIST- Không bị tự động tạm dừng:
ERROR_IP_BLOCKED_5MIN(xem Giới hạn đồng thời và tự động tạm dừng) - Số dư lớn hơn 10 điểm:
ERROR_ZERO_BALANCE - Có
task:ERROR_TASK_ABSENT task.typetồn tại:ERROR_TASK_NOT_SUPPORTED- Đủ các trường bắt buộc:
ERROR_REQUIRED_FIELDS(errorDescriptionghi rõ thiếu trường nào) - Với tác vụ hình ảnh, ảnh hợp lệ:
ERROR_ZERO_CAPTCHA_FILESIZE,ERROR_IMAGE_TYPE_NOT_SUPPORTED, v.v.
Ví dụ hoàn chỉnh
Phần tiêu đề “Ví dụ hoàn chỉnh”Tạo tác vụ và gọi lại để lấy kết quả (loại bất đồng bộ):
curl -s https://api.yescaptcha.com/createTask \ -H 'Content-Type: application/json' \ -d '{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "NoCaptchaTaskProxyless", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" }}'
# 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": "NoCaptchaTaskProxyless", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",})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: "NoCaptchaTaskProxyless", websiteURL: "https://www.google.com/recaptcha/api2/demo", websiteKey: "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",});console.log(solution.gRecaptchaResponse);© YesCaptcha