Skip to main content
本文將介紹一種 Recaptcha3 協議識別 API 對接說明,它可讓用戶無需識別和點選 Recaptcha3 驗證碼圖片,僅需通過提交 Website Key 即可實現後台自動解碼,完成驗證。

申請流程

要使用 Recaptcha3 協議識別 API,首先到 Ace Data Cloud 控制台 獲取您的 API Token,留作備用。 如果你尚未登錄或註冊,會自動跳轉到登錄頁面邀請你註冊和登錄,完成後會自動返回當前頁面。 一個 API Token 即可調用平台所有服務,無需為每個服務單獨申請。 首次申請會贈送免費額度,可免費體驗;額度不足時可在 控制台 充值通用餘額。
📘 完整文檔:Recaptcha3 協議識別 API →

基本使用

首先先了解下基本的使用方式,與Recaptcha2相比,我們需要額外傳入一個參數 page_action,這個參數的獲取需要去代碼中獲取,本次展示的網速URL為:https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php,下面展示一種獲取的方法:

快捷方法:

打開 f12 ,然後在Element頁面中搜索 .execute( ,在紅色框框區域我們可以看到有 action 參數,同時execute後面還跟著一串字符串,這也是下文需要的內容,具體的如下圖所示。

其次還需要輸入需要處理驗證碼的網站URL,便可獲得處理後的結果,首先需要簡單地傳遞一個 website_url 字段,最後還需要輸入參數 website_key,這個內容在上文可以獲取到,也是execute後面的一串字符串。我們接下來就可以在界面上填寫對應的內容,如圖所示:

可以看到這裡我們設置了 Request Headers,包括:
  • accept:想要接收怎樣格式的響應結果,這裡填寫為 application/json,即 JSON 格式。
  • authorization:調用 API 的密鑰,申請之後可以直接下拉選擇。
另外設置了 Request Body,包括:
  • page_action:需要在驗證碼的網站代碼獲取。
  • website_url:需要處理驗證碼的網站URL。
  • website_key:在Recaptcha3中的網站密鑰標識符。
選擇之後,可以發現右側也生成了對應代碼,如圖所示:

點擊「Try」按鈕即可進行測試,如上圖所示,這裡我們就得到了如下結果:
返回結果一共有多個字段,介紹如下:
  • token,此次 Recaptcha3驗證碼任務處理後驗證結果。
  • started_atfinished_at:本次請求開始處理與產出結果的時間,Unix 時間戳(秒,浮點)。
  • elapsed:本次處理的總耗時(秒)。
可以看到我們得到了處理 Recaptcha3驗證碼的驗證結果,然後我們可以用於POST或GET模擬提交給目標網站,一次性使用,有效期120s,建議在60s內使用。下面將簡要介紹一種方式來把生成的token提交給目標網站: 調用token驗證所對應的Python版本代碼:
因此我們可以得到結果:
可以看到,其中 success 表示此处驗證的處理結果,所有我們成功通過Recaptcha3驗證碼的驗證。 另外如果想生成對應的對接代碼,可以直接複製生成,例如 CURL 的代碼如下:
Python 的對接代碼如下:

非同步模式(async)

默認情況下 API 是同步阻塞的:一次請求會一直等待,直到 token 處理完成才返回。如果你在做多打碼器輪換(multi-solver rotation),希望「提交任務後立即拿到 task_id,先去調度其他打碼器,稍後再回來讀取結果」,可以在請求體中傳入 async: true 傳入 async: true 後,接口會立即返回一個 task_id,而不會阻塞等待:
如需主動查看進度,可使用該 task_id 查詢 POST /captcha/tasks(建議每 3~5 秒一次)。本接口不會觸發或推進任務處理;即使不查詢、斷網或退出客戶端,伺服器仍會繼續處理:
處理中會返回 status: processing
處理完成會返回 status: ready 和 token:
計費說明:非同步模式下,創建任務和讀取「處理中」狀態都不計費;客戶端首次讀取成功結果時計費一次(與現有行為及同步模式價格一致)。伺服器會自主推進任務,但不會因為後台先完成就提前扣費。任務在 120 秒內未成功會終止為 HTTP 504 timeout,不計費。/captcha/tasks 不負責推進任務。

錯誤處理

在調用 API 時,如果遇到錯誤,API 會返回相應的錯誤代碼和信息。例如:
  • 400 token_mismatched:Bad request, possibly due to missing or invalid parameters.
  • 400 api_not_implemented:Bad request, possibly due to missing or invalid parameters.
  • 401 invalid_token:Unauthorized, invalid or missing authorization token.
  • 429 too_many_requests:Too many requests, you have exceeded the rate limit.
  • 500 api_error:Internal server error, something went wrong on the server.

錯誤響應示例

結論

通過本文檔,您已經了解了如何使用 Recaptcha3 協議識別 API 讓用戶無需識別和點選 Recaptcha3 驗證碼圖片,僅需通過提交 Website Key 即可實現後台自動解碼,完成驗證。希望本文檔能幫助您更好地對接和使用該 API。如有任何問題,請隨時聯繫我們的技術支持團隊。