Skip to main content
本文将介绍一种 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
  • started_atfinished_at:本次请求开始处理与产出结果的时间,Unix 时间戳(秒,浮点)。
  • elapsed:本次处理的总耗时(秒)。
可以看到我们得到了处理 Recaptcha2验证码图像 的验证结果,我们首先对验证码图像进行划分区域,如下图所示:

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

Mode asynchrone (async)

Par défaut, l’API est synchrone et bloquante : une demande attendra jusqu’à ce que le traitement du résultat de reconnaissance soit terminé avant de renvoyer. Si vous effectuez une rotation de plusieurs solveurs (multi-solver rotation) et souhaitez « soumettre la tâche et obtenir immédiatement le task_id, puis planifier d’autres solveurs et revenir plus tard pour lire les résultats », vous pouvez passer async: true dans le corps de la demande. En passant async: true, l’interface renverra immédiatement un task_id sans bloquer l’attente :
Pour vérifier activement la progression, vous pouvez utiliser ce task_id pour interroger POST /captcha/tasks (il est conseillé de le faire toutes les 3 à 5 secondes). Cette interface ne déclenchera ni n’avancera le traitement de la tâche ; même sans requête, en cas de perte de connexion ou de fermeture du client, le serveur continuera à traiter :
En cours de traitement, cela renverra status: processing :
Une fois le traitement terminé, cela renverra status: ready et le résultat de reconnaissance solution (la structure des champs est complètement identique à celle du mode synchrone) :
Explication de la facturation : en mode asynchrone, la création de tâches et la lecture de l’état « en cours de traitement » ne sont pas facturées ; le client est facturé une fois lors de la première lecture d’un résultat réussi (identique au comportement actuel et au prix du mode synchrone). Le serveur avancera la tâche de manière autonome, mais ne facturera pas à l’avance si le traitement est terminé en arrière-plan. Si la tâche n’est pas réussie dans les 120 secondes, elle sera arrêtée avec un HTTP 504 timeout, sans facturation. /captcha/tasks n’est pas responsable de l’avancement des tâches.

Gestion des erreurs

Lors de l’appel de l’API, si une erreur se produit, l’API renverra le code d’erreur et les informations correspondantes. Par exemple :
  • 400 token_mismatched : Mauvaise demande, probablement en raison de paramètres manquants ou invalides.
  • 400 api_not_implemented : Mauvaise demande, probablement en raison de paramètres manquants ou invalides.
  • 401 invalid_token : Non autorisé, jeton d’autorisation invalide ou manquant.
  • 429 too_many_requests : Trop de demandes, vous avez dépassé la limite de taux.
  • 500 api_error : Erreur interne du serveur, quelque chose s’est mal passé sur le serveur.

Exemple de réponse d’erreur

Conclusion

Grâce à ce document, vous avez compris comment utiliser l’API de reconnaissance d’image Recaptcha2 pour permettre aux utilisateurs d’entrer le contenu reconnu et l’image du captcha Recaptcha2, puis de renvoyer les coordonnées de la petite image à cliquer pour compléter la vérification. Nous espérons que ce document vous aidera à mieux intégrer et utiliser cette API. Si vous avez des questions, n’hésitez pas à contacter notre équipe de support technique.