跳转到主要内容
本文将介绍一种 Recaptcha2 图像识别2 API 对接说明,它可以通过用户输入识别的内容和 Recaptcha2验证码图像,最后返回需要点击的小图像的坐标,完成验证。

申请流程

要使用 Recaptcha2 图像识别 API,首先到 Ace Data Cloud 控制台 获取您的 API Token,留作备用。 如果你尚未登录或注册,会自动跳转到登录页面邀请你注册和登录,完成后会自动返回当前页面。 一个 API Token 即可调用平台所有服务,无需为每个服务单独申请。 首次申请会赠送免费额度,可免费体验;额度不足时可在 控制台 充值通用余额。
📘 完整文档:Recaptcha2 图像识别 API →

基本使用

首先先了解下基本的使用方式,我们需要从网站中截取到Recaptcha2验证码图像,此处示例网站的URL:https://www.google.com/recaptcha/api2/demo,具体的页面如下图所示:

我们需要点击验证码的复选框才会出现验证码图像,在上图中黄色箭头指向的有一段文字内容,这个内容便是下文的 question 的值。首先需要简单地传递一个 image 字段,这个就是具体Recaptcha2验证码图像,这个图像是上图中红色箭头指向的图像,同时必须将图片缩放至 标准 大小 (100x100, 300x300, 450x450), 这样服务才能判断图片类型,图片的压缩需要您自行压缩,本文推荐一个压缩网站,您可以在此网站中对图像进行尺寸和大小的压缩,压缩后的结果如图所示: 同时还需要输入跟验证码图像相关的识别内容参数 question,我们只提供了下面这个内容表,可以作为参考下面:

中文内容表

英文内容表

由上文可知将参数 question 设置为消防栓对应的 /m/01pns0,具体的内容如下:

可以看到这里我们设置了 Request Headers,包括:
  • accept:想要接收怎样格式的响应结果,这里填写为 application/json,即 JSON 格式。
  • authorization:调用 API 的密钥,申请之后可以直接下拉选择。
另外设置了 Request Body,包括:
  • image:Base64编码的验证码图像。
  • question:问题 ID, 请查表, 以 /m/ 开头。
选择之后,可以发现右侧也生成了对应代码,如图所示:

点击「Try」按钮即可进行测试,如上图所示,这里我们就得到了如下结果:
返回结果一共有多个字段,介绍如下:
  • solution,此次 Recaptcha2验证码图像 任务处理后验证结果。
    • size,Recaptcha2验证码图像的尺寸大小。
    • label,Recaptcha2验证码图像所识别的内容。
    • confidences,Recaptcha2验证码图像识别区域的置信度,区域是从0开始的。
    • objects,Recaptcha2验证码图像识别后满足识别内容的区域,区域从0开始。
    • type,此次 Recaptcha2验证码图像 任务的类型,多个区域时为 multi
可以看到我们得到了处理 Recaptcha2验证码图像 的验证结果,我们首先对验证码图像进行划分区域,如下图所示:

可以看到区域都是从0开始的,从结果中 objects中我们得到了2,5,7,我们只需要对该验证码模拟点击该三个区域便可通过验证。 另外如果想生成对应的对接代码,可以直接复制生成,例如 CURL 的代码如下:
Python 的对接代码如下:

错误处理

在调用 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.

错误响应示例

结论

通过本文档,您已经了解了如何使用 Recaptcha2 图像识别 API 让用户输入识别的内容和 Recaptcha2验证码图像,最后返回需要点击的小图像的坐标,完成验证。希望本文档能帮助您更好地对接和使用该 API。如有任何问题,请随时联系我们的技术支持团队。