跳轉到主要內容
本文將介紹一種 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_at、finished_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。如有任何問題,請隨時聯繫我們的技術支持團隊。