Recaptcha3 协议识别 API 对接说明
本文将介绍一种 Recaptcha3 协议识别 API 对接说明,它可让用户无需识别和点选 Recaptcha3 验证码图片,仅需通过提交 Website Key 即可实现后台自动解码,完成验证。
接下来介绍下 Recaptcha3 协议识别 API 的对接说明。
申请流程
要使用 API,需要先到 Recaptcha3 协议识别 API 对应页面申请对应的服务,进入页面之后,点击「Acquire」按钮,如图所示:
如果你尚未登录或注册,会自动跳转到登录页面邀请您来注册和登录,登录注册之后会自动返回当前页面。
在首次申请时会有免费额度赠送,可以免费使用该 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": "03xxxxxxx"
}
返回结果一共有多个字段,介绍如下:
token,此次 Recaptcha3验证码 任务处理后验证结果。
可以看到我们得到了处理 Recaptcha3验证码 的验证结果,然后我们可以用于POST或GET模拟提交给目标网站,一次性使用,有效期120s,建议在60s内使用。下面将简要介绍一种方式来把生成的token提交给目标网站:
调用token验证所对应的Python版本代码:
import requests
url = "https://recaptcha-demo.appspot.c/recaptcha-v3-verify.php?action=examples/v3scores&token='{token}'"
r = requests.get(url)
if r.status_code == 200:
return r.text
因此我们可以得到结果:
{
"success": true,
"hostname": "recaptcha-demo.appspot.com",
"challenge_ts": "2024-09-14T08:52:26Z",
"apk_package_name": null,
"score": 0.9,
"action": "examples/v3scores",
"error-codes": []
}
可以看到,其中 success 表示此处验证的处理结果,所有我们成功通过Recaptcha3验证码的验证。
另外如果想生成对应的对接代码,可以直接复制生成,例如 CURL 的代码如下:
curl -X POST 'https://api.acedata.cloud/captcha/token/recaptcha3' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
"website_url": "https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php",
"website_key": "6LdKlZEpAAAAAAOQjzC2v_d36tWxCl6dWsozdSy9",
"page_action": "examples/v3scores"
}'
Python 的对接代码如下:
import requests
url = "https://api.acedata.cloud/captcha/token/recaptcha3"
headers = {
"accept": "application/json",
"authorization": "Bearer {token}",
"content-type": "application/json"
}
payload = {
"website_url": "https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php",
"website_key": "6LdKlZEpAAAAAAOQjzC2v_d36tWxCl6dWsozdSy9",
"page_action": "examples/v3scores"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
错误处理
在调用 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.
错误响应示例
{
"success": false,
"error": {
"code": "api_error",
"message": "fetch failed"
},
"trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
结论
通过本文档,您已经了解了如何使用 Recaptcha3 协议识别 API 让用户无需识别和点选 Recaptcha3 验证码图片,仅需通过提交 Website Key 即可实现后台自动解码,完成验证。希望本文档能帮助您更好地对接和使用该 API。如有任何问题,请随时联系我们的技术支持团队。