Bỏ qua để đến nội dung
Trạng tháiBảng điều khiển

Loại 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.

Hình minh họareCAPTCHA v2: ô đánh dấu "Tôi không phải là người máy". Khi nhấp vào, ô được đánh dấu ngay hoặc hiện ra một câu hỏi bằng hình ảnh.

Tác vụ reCAPTCHA v2 trả về một token (gRecaptchaResponse). Gửi token này cho trang web đích là qua được bước xác minh, không cần bấm chọn hình ảnh. Loại hay dùng nhất là NoCaptchaTaskProxyless, giá 15 điểm (≈ $2.25 / 1k) mỗi tác vụ, trả kết quả bất đồng bộ: gọi createTask để tạo tác vụ, sau đó cứ 5 giây gọi getTaskResult một lần để lấy kết quả. Tác vụ nhận dạng thất bại hoặc hết thời gian sẽ tự động hoàn điểm.

POSThttps://api.yescaptcha.com/createTaskEndpoint quốc tế
POSThttps://cn.yescaptcha.com/createTaskEndpoint Trung Quốc

Nội dung yêu cầu là JSON, xác thực bằng clientKey (sao chép trong bảng điều khiển tại yescaptcha.com). Tạo tác vụ ở endpoint nào thì truy vấn kết quả ở endpoint đó.

  • Trang web có ô đánh dấu “Tôi không phải là người máy” (I’m not a robot): bản thường.
  • Không có ô đánh dấu, chỉ sau khi bấm nút gửi mới hiện câu hỏi hình ảnh: bản ẩn, thêm "isInvisible": true.
  • Trang tải recaptcha/enterprise.js, hoặc địa chỉ yêu cầu có chứa enterprise: bản Enterprise, dùng loại có Enterprise trong tên.

Nếu không chắc là loại nào, xem Xác định loại captcha. Nếu token có tỷ lệ qua chưa như ý, có thể chuyển sang nhận dạng hình ảnh reCAPTCHA v2: API cho biết cần bấm vào những ảnh nào, bạn tự bấm trong trình duyệt.

Loại tác vụGiáCách trả kết quảGhi chú
NoCaptchaTaskProxyless$2.25 / 1k; 15 điểm/tác vụ · ¥15 / 1kBất đồng bộ
RecaptchaV2TaskProxyless$3.00 / 1k; 20 điểm/tác vụ · ¥20 / 1kBất đồng bộCùng tham số với NoCaptchaTaskProxyless nhưng đi qua tuyến khác; có thể dùng cái này làm dự phòng cho cái kia
NoCaptchaTask$2.25 / 1k; 15 điểm/tác vụ · ¥15 / 1kBất đồng bộDùng proxy riêng
RecaptchaV2EnterpriseTaskProxyless$3.00 / 1k; 20 điểm/tác vụ · ¥20 / 1kBất đồng bộ
RecaptchaV2EnterpriseTask$3.00 / 1k; 20 điểm/tác vụ · ¥20 / 1kBất đồng bộDùng proxy riêng

Giá bằng đô la Mỹ chỉ là ước tính theo US$1 ≈ ¥6.67; tác vụ được trừ điểm.

  • NoCaptchaTaskProxyless và RecaptchaV2TaskProxyless có tham số giống nhau nhưng đi tuyến khác nhau. Nếu một loại có tỷ lệ qua chưa như ý, hãy thử loại còn lại.
  • Các loại không có Proxyless trong tên (NoCaptchaTask, RecaptchaV2EnterpriseTask) tải captcha qua proxy của bạn, cần truyền các trường proxyType, proxyAddress, proxyPort, v.v. Dùng chúng khi trang web đích có yêu cầu về IP truy cập.

Đối tượng task của createTask:

TrườngKiểuBắt buộcMô tả
typestringCóLoại tác vụ; xem "Loại tác vụ và giá" trên trang này
websiteURLstringCóURL đầy đủ của trang hiển thị captcha. Điền trang web nơi bạn thấy captcha, không điền tên miền của nhà cung cấp captcha
websiteKeystringCóKhóa trang web (sitekey), tìm trong mã nguồn trang hoặc trong các request mạng; thường không thay đổi
isInvisiblebooleanKhôngĐặt là true cho phiên bản ẩn (invisible); nếu không thì bỏ qua
proxyTypestringMột số loạiGiao thức proxy: http, https, socks4 hoặc socks5 (Bắt buộc với NoCaptchaTask, RecaptchaV2EnterpriseTask)
proxyAddressstringMột số loạiĐịa chỉ IP hoặc tên máy chủ của proxy. Địa chỉ cục bộ hoặc nội bộ như 127.0.0.1 hay 192.168.x.x sẽ không hoạt động vì máy chủ của chúng tôi không truy cập được (Bắt buộc với NoCaptchaTask, RecaptchaV2EnterpriseTask)
proxyPortintegerMột số loạiCổng proxy (Bắt buộc với NoCaptchaTask, RecaptchaV2EnterpriseTask)
proxyLoginstringKhôngTên người dùng proxy, nếu proxy yêu cầu xác thực (chỉ NoCaptchaTask, RecaptchaV2EnterpriseTask)
proxyPasswordstringKhôngMật khẩu proxy, nếu proxy yêu cầu xác thực (chỉ NoCaptchaTask, RecaptchaV2EnterpriseTask)
userAgentstringKhôngUser-Agent của trình duyệt. Nếu kết quả có userAgent, hãy dùng giá trị đó khi gửi token (chỉ NoCaptchaTask, RecaptchaV2EnterpriseTask)
enterprisePayloadobjectKhôngTham số bổ sung của phiên bản enterprise, ví dụ giá trị s của reCAPTCHA Enterprise: {"s": "..."}. Bỏ qua nếu trang không dùng (chỉ RecaptchaV2EnterpriseTaskProxyless, RecaptchaV2EnterpriseTask)

Cách tìm websiteURL và websiteKey: xem Tìm tham số reCAPTCHA.

Lấy trang demo chính thức của Google làm ví dụ:

POST https://api.yescaptcha.com/createTask
{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "NoCaptchaTaskProxyless",
"websiteURL": "https://www.google.com/recaptcha/api2/demo",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"
}
}

Mã đầy đủ (tạo tác vụ, cứ 5 giây truy vấn một lần, in token). Trước khi chạy, hãy đặt clientKey vào biến môi trường YESCAPTCHA_CLIENT_KEY:

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"}'

Với bản Enterprise, nếu trang web truyền giá trị s cho reCAPTCHA, hãy đặt giá trị đó vào enterprisePayload:

POST https://api.yescaptcha.com/createTask
{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "RecaptchaV2EnterpriseTaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "SITE_KEY_OF_THE_PAGE",
"enterprisePayload": {
"s": "S_VALUE_FROM_THE_PAGE"
}
}
}

Dùng proxy của bạn:

POST https://api.yescaptcha.com/createTask
{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "NoCaptchaTask",
"websiteURL": "https://www.google.com/recaptcha/api2/demo",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
"proxyType": "http",
"proxyAddress": "proxy.example.com",
"proxyPort": 8080,
"proxyLogin": "user",
"proxyPassword": "pass"
}
}

createTask trả về ID tác vụ:

{
"errorId": 0,
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}

Dùng ID này để gọi getTaskResult. Khi tác vụ còn đang xử lý sẽ trả về {"errorId": 0, "status": "processing"}, hãy truy vấn lại sau 5 giây; khi hoàn thành sẽ trả về:

{
"errorId": 0,
"status": "ready",
"solution": {
"gRecaptchaResponse": "03AGdBq25SxXT-pmSeBXjzScW-EiocHwwpwqtk1QXlJnGnU..."
}
}
TrườngKiểuMô tả
gRecaptchaResponsestringToken cần gửi cho website đích. Chỉ dùng một lần, có hiệu lực khoảng 120 giây; nên dùng trong vòng 60 giây

Một tác vụ được xử lý tối đa khoảng 110 giây, quá thời gian sẽ trả về ERROR_TASK_TIMEOUT và hoàn điểm. Khi có lỗi, errorId bằng 1, hãy xử lý theo errorCode, xem Mã lỗi. Cách gửi token sau khi nhận được: xem Dùng token để hoàn thành reCAPTCHA.

Tại sao token của cùng một trang web lúc qua lúc không?

Phần tiêu đề “Tại sao token của cùng một trang web lúc qua lúc không?”

Việc có qua hay không do trang web đích quyết định. Trang web chấm điểm từng lần xác minh và đặt ngưỡng, ngưỡng này có thể thay đổi bất cứ lúc nào, nên tỷ lệ qua khác nhau tùy trang web và không phải token nào cũng qua. Bạn có thể đổi sang loại tác vụ cùng nhóm để so sánh tỷ lệ qua, hoặc chuyển sang nhận dạng hình ảnh.

Dùng được một lần, có hiệu lực khoảng 120 giây, nên gửi trong vòng 60 giây sau khi nhận. Thời hạn do Google quyết định.

Nhận dạng thất bại có bị trừ điểm không?

Phần tiêu đề “Nhận dạng thất bại có bị trừ điểm không?”

Không. Tác vụ trả về ERROR_CAPTCHA_UNSOLVABLE hoặc hết thời gian sẽ tự động hoàn điểm, xem Tính phí và hoàn điểm.