Giới thiệu về reCaptcha
reCaptcha là sản phẩm chống bot thu thập dữ liệu web của Google, cung cấp cơ chế mã hóa và nhận dạng hình ảnh để bảo vệ website trước các cuộc tấn công spam. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách sử dụng dịch vụ của chúng tôi để vượt qua thử thách reCaptcha và nhận được token hiệu quả.
Hướng dẫn sử dụng
Trong bài viết kỹ thuật này, chúng tôi sẽ hướng dẫn bạn quy trình vượt qua reCaptcha bằng cách sử dụng dịch vụ EzCaptcha. EzCaptcha cung cấp nhiều loại tác vụ khác nhau để giải quyết reCaptcha:
Kiểu tác vụ
ReCaptchaV2TaskProxyless: Nhiệm vụ này là giải pháp reCaptcha V2 sử dụng trình chủ (agent) tích hợp sẵn từ máy chủ.
RecaptchaV2EnterpriseTaskProxyless: Đây là giải pháp reCaptcha V2 Enterprise sử dụng trình chủ (agent) được tích hợp sẵn trong máy chủ.
ReCaptchaV2STaskProxyless: Nhiệm vụ này là giải pháp reCaptcha V2 có tham số s.
RecaptchaV2SEnterpriseTaskProxyless: Nhiệm vụ này sử dụng reCaptcha V2 Enterprise có tích hợp tham số s.
ReCaptchaV3TaskProxyless: Đây là giải pháp reCaptcha V3 sử dụng trình chủ (agent) tích hợp sẵn từ máy chủ.
ReCaptchaV3TaskProxylessS9: Loại tác vụ này sử dụng proxy tích hợp sẵn từ máy chủ và trả về điểm token tối thiểu 0.9.
ReCaptchaV3EnterpriseTaskProxyless: Đây là giải pháp reCaptcha V3 Enterprise sử dụng trình chủ (agent) tích hợp sẵn từ máy chủ.
Để bắt đầu, bạn cần tạo một tác vụ nhận dạng bằng phương thức createTask. Dưới đây là ví dụ cách tạo tác vụ và các tham số bắt buộc:
clientKey: Khóa người dùng cho tài khoản của bạn
type: Dạng nhiệm vụ được nêu trên
websiteURL: Đường dẫn (URL) đầy đủ của trang web sử dụng reCaptcha
websiteKey: Sitekey reCaptcha được trang web sử dụng
pageAction: Khi loại tác vụ của bạn là V3 hoặc V3 Enterprise, cần tìm pageAction mà trang web sử dụng và điền vào.
isInvisible: reCaptcha có hai chế độ: ẨN (invisible) và HIỆN (visible). Phiên bản V2 hỗ trợ cả hai, trong khi V3 thường chỉ có chế độ ẩn.
s: Một số trang web sử dụng reCAPTCHA V2 có kiểm soát rủi ro nghiêm ngặt, sẽ dùng tham số 's' do Google cung cấp để đánh dấu xác minh duy nhất. Loại tác vụ cần chỉ định phải là RecaptchaV2STaskProxyless hoặc RecaptchaV2SEnterpriseTaskProxyless do chúng tôi cung cấp để giải quyết.
Yêu cầu mẫu
POST https://api.ez-captcha.com/createTask
Host: api.ez-captcha.com
Content-Type: application/json
{
"clientKey":"yourapiKey",
"task":
{
"type":"RecaptchaV3TaskProxyless",
"websiteURL":"https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php",
"websiteKey":"6LdyC2cUAAAAACGuDKpXeDorzUDWXmdqeg-xy696",
"pageAction": "examples/v3scores",
"isInvisible": true
}
}
Khi tác vụ được gửi thành công, bạn sẽ nhận được ID tác vụ trong phản hồi:
JSON
{
"errorId": 0,
"errorCode": "",
"errorDescription": "",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
Sau khi có task ID, bạn có thể dùng nó để kiểm tra token đã được tạo hay chưa. Gửi task ID qua interface getTaskResult. Kết quả tác vụ V3 thường được trả về trong khoảng 1-10 giây (tốc độ phản hồi trung bình 3s). Dưới đây là ví dụ yêu cầu:
POST https://api.ez-captcha.com/getTaskResult
Host: ez-captcha.com
Content-Type: application/json
{
"clientKey":"YOUR_API_KEY",
"taskId": "TASKID OF CREATETASK" // ID được tạo bởi phương thức createTask
}
Định dạng phản hồi như sau:
{
'errorId': 0,
'solution': {
'gRecaptchaResponse': 'xxxx' // Khi kết quả sẵn sàng, sẽ có một token được trả về.
},
'status': 'ready' // Nếu trạng thái là 'processing': kết quả chưa được sinh. Khi chuyển sang 'ready': token sẽ khả dụng.
}
Nếu trạng thái là ‘processing’, bạn cần chờ kết quả và gọi lại API sau một khoảng thời gian. Khi trạng thái chuyển sang ‘ready’, token đã sẵn sàng và có thể lấy được trong trường gRecaptchaResponse thuộc đối tượng solution của JSON kết quả.