ReCaptchaV2Classification: reCaptcha V2 图像识别

此对象不会返回 RESPONSE, 只返回图像识别结果! 请无接入能力的用户避免使用!

我们提供了一个基于Python Selenium的模拟点击DEMO,有能力的可以参照学习

此接口开发难度较高,建议想节省时间的可以直接安装浏览器插件,自动点击通过 点此查看

创建任务

通过 createTask方法 创建识别任务

请求节点: 国际节点 https://api.yescaptcha.com 国内节点 https://cn.yescaptcha.com

请求地址: https://api.yescaptcha.com/createTask

请求格式:POST application/json

对象结构

属性

类型

必须

说明

属性

类型

必须

说明

type

string

ReCaptchaV2Classification 300x300 450x450 10 POINTS ->8 POINTS 100x100 2 点数

image

string

Base64 编码的图片,不要包含 "data:image/***;base64,"

question

String

问题 ID, 请查表, 以 /m/ 开头

confidence

int

结果置信度分值,非必填,0.0 不匹配 ~1.0 完全匹配(分值越大匹配度越高),默认值为空

对于3x3 类型的图片,当指定一个分值时(建议0.5),会返回所有大于该分值的结果,不指定时会返回排名前三的结果。

对于4x41x1的图片指定此值无意义

具体使用场景见下方说明。

请求示例

{ "clientKey": "cc9c18d3e263515c2c072b36a7125eecc078618f", "task": { "type": "ReCaptchaV2Classification", "image": "/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDc....", "question": "/m/0k4j" } }

响应示例

{ "errorId": 0, "errorCode": "", "errorDescription": "null", "status": "ready", "taskId": "3a9e8cb8-3871-11ec-9794-94e6f7355a0b", "solution": { "objects": [1,5,8], // 图像需要点击的位置 "type": "multi" } }

 

图片格式

标准大小 3x3: (300x300) 10 POINTS ->8 POINTS 可以是截图:按照返回结果点击对应位置

"solution": { "objects": [0,2,6], // 图像需要点击的位置 "type": "multi" }

 

标准大小 4x4: (450x450) 10 POINTS ->8 POINTS 可以是截图:按照返回结果点击对应位置

 

1x1: 刷出来的小图 (100x100) 2 POINTS

在按下3x3后, 如果不是imageselect类型, 会刷新小图

将小图缩放到100x100大小,通过上面的接口发送到后端,接口返回是否需要点击

hasObject 代表是否需要点击

 

问题 ID的查找方式

ID 对照表: 中文并非 ReCaptcha 官方翻译, 仅供参考

 

错误信息

errorCode

errorDescription

说明

errorCode

errorDescription

说明

ERROR_INTERNAL_SERVER_ERROR

服务器内部错误

请确保各项参数正确

ERROR_UNKNOWN_QUESTION

错误的问题ID

请检查问题ID是否正确

ERROR_ILLEGAL_IMAGE

图片大小不符合要求

请缩放至指定大小450x450/300x300/100x100

ERROR_UNKNOW_450x450_QUESTION

这个尺寸暂时不支持这个问题

暂时不能很好的识别这个问题相关的图片,请重试其他类型的图片

ERROR_PARSE_IMAGE_FAIL

解析图片失败

请确认图片BASE64编码是否正确

 

 

字段confidence使用说明

reCaptcha有三种类型的需要识别,1种是3x3的九宫格,1种是4x4的十六宫格,当3x3的图片点击之后会继续刷新小图,这种就是1x1的小图。

当开发者基于网页端开发时,1x1的小图容易判断与获取,但是基于移动端的开发者在开发者会遇到不方便获取1x1图片的情况。

因此,我们提供一个confidence 字段,当携带这个字段时3x3的图片不再默认返回3张得分最高的的结果(因为谷歌要求最少点击三个图片目标),而是返回所有符合条件的结果,这样就不需要再截图1X1的小图,可以直接将3X3的图片上传得到需要点击的位置。

以下面这张图为例:

如果我们请求识别小汽车 /m/0k4j时,默认接口会返回三个结果

发送样例

返回样例,默认返回了最符合的三个结果:1、2、7

如果我们添加confidence参数,设置为0.5,再次发送请求

会得到五个结果,因为这五个结果的得分都在0.5以上

如果没有符合条件的,会返回空数组。

此时根据结果再次点击即可

 

截图如何判断是3x3还是4x4

如果是网页处理,直接获取图片传到接口,服务器会根据图片尺寸自动判断类型(根据图片大小)

但如果是截图就不方便判断,此时可以根据问题的类型来判断

3x3是“选择所有图片” 或者 Select all images with xxx

4x4是“选择所有图块” 或者 select all squares with xxx