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 |
image | string | 是 | Base64 编码的图片,不要包含 "data:image/***;base64," |
question | String | 是 | 问题 ID, 请查表, 以 /m/ 开头 |
confidence | int | 否 | 结果置信度分值,非必填,0.0 不匹配 ~1.0 完全匹配(分值越大匹配度越高),默认值为空 对于 对于 具体使用场景见下方说明。 |
请求示例
{
"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 | 说明 |
---|---|---|
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