Looking for international version of our service? Go to 2captcha.com

FunCaptcha Compare (Сопоставление иконок)

Виджет FunCaptcha Compare

Этот тип FunCaptcha отображает изображение с набором иконок внизу и эталонным набором иконок вверху. Пользователю нужно сопоставить иконки с левой стороны с соответствующими иконками в верхнем правом наборе.
Например, изображение может показывать иконки фруктов внизу и те же иконки в другом порядке в правом верхнем углу. Пользователь должен выбрать каждую подходящую иконку правильно.

Как и другие капчи на основе изображений FunCaptcha, она может быть решена через универсальный отдельный метод API на основе токенов, а также через универсальный Grid-метод.

Изображение капчи делится на части, и результат решения возвращается в виде списка выбранных индексов плиток.

Возвращает массив выбранных индексов плиток, где 0 соответствует верхнему левому углу сетки.

  • Поддерживаемые форматы изображений: JPEG, PNG, GIF
  • Максимальный размер файла: 600 кБ
  • Максимальный размер изображения: 1000px по любой стороне

Спецификация GridTask (FunCaptcha Compare)

Свойство Тип Обязательное Описание
type String Да Тип задачи: GridTask
body String Да Капча изображение в Base64. Поддерживается также формат Data-URI (с префиксом data:content/type)
rows Number Нет Количество строк в сетке
columns Number Нет Количество колонок в сетке
comment String Да* Текст инструкции для исполнителей, объясняющий, как правильно решить капчу
imgInstructions String Да* Инструкционное изображение для исполнителей. Кодировано в Base64. Максимальный размер: 100 кБ
minClicks Number Нет Минимальное количество плиток, которое нужно выбрать. По умолчанию: 1. Не может превышать rows * columns
maxClicks Number Нет Максимальное количество плиток, которое можно выбрать. По умолчанию: rows * columns
canNoAnswer Number Нет 0 — не разрешено
1 — возможно, что ни одна плитка не соответствует инструкции. Исполнители увидят кнопку "Нет подходящих изображений", а ответ вернет No_matching_images
previousId String Нет ID вашего предыдущего запроса для той же задачи FunCaptcha
imgType String Нет Используется для ускоренного распознавания через Computer Vision. Поддерживаемые значения:
funcaptcha — FunCaptcha с кликом по плиткам. Подробнее.
funcaptcha_compare — FunCaptcha с сопоставлением иконок / выбор с помощью стрелок. Подробнее.
recaptcha — reCAPTCHA. Подробнее.
Важно: при использовании imgType необходимо предоставить comment на английском и загрузить оригинальные файлы изображений (не скриншоты).
  • Вы должны предоставить либо comment, либо imgInstructions.

Пример запроса (FunCaptcha Compare)

Метод: createTask
API-эндпоинт: https://api.rucaptcha.com/createTask

json Copy
{
    "clientKey": "key",
    "task": {
        "type": "GridTask",
        "body": "/9j/2wCEAAoHBwgHBgoICAgLCgoLDhgQDg0",
        "comment": "Match the icons on the left with the icons on the top faces of the dice (1 of 1) (instructions must be in English)",
        "imgType": "funcaptcha_compare"
    }
}

Примеры кода

php Copy
  // https://github.com/2captcha/2captcha-php

  require(__DIR__ . '/../src/autoloader.php');

  $solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY');

  try {
      $result = $solver->grid('path/to/captcha.jpg', ['imgType' => 'funcaptcha_compare']);
  } catch (\Exception $e) {
      die($e->getMessage());
  }

  die('Captcha solved: ' . $result->code);
python Copy
# https://github.com/2captcha/2captcha-python

import sys
import os

sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))

from twocaptcha import TwoCaptcha

api_key = os.getenv('APIKEY_2CAPTCHA', 'YOUR_API_KEY')

solver = TwoCaptcha(api_key)

try:
  result = solver.grid('path/to/captcha.jpg', imgType='funcaptcha_compare')

except Exception as e:
  sys.exit(e)

else:
  sys.exit('solved: ' + str(result))
csharp Copy
  // https://github.com/2captcha/2captcha-csharp

  using System;
  using System.Linq;
  using TwoCaptcha.Captcha;

  namespace TwoCaptcha.Examples
  {
      public class GridExample
      {
          public static void Main()
          {
              var solver = new TwoCaptcha("YOUR_API_KEY");
              Grid captcha = new Grid("path/to/captcha.jpg");
              captcha.ImgType = "funcaptcha_compare"; 
              try
              {
                  solver.Solve(captcha).Wait();
                  Console.WriteLine("Captcha solved: " + captcha.Code);
              }
              catch (AggregateException e)
              {
                  Console.WriteLine("Error occurred: " + e.InnerExceptions.First().Message);
              }
          }
      }
  }
java Copy
  // https://github.com/2captcha/2captcha-java

  package examples;

  import com.twocaptcha.TwoCaptcha;
  import com.twocaptcha.captcha.Grid;

  public class GridExample {
      public static void main(String[] args) {
          TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
          Grid captcha = new Grid("path/to/captcha.jpg");
          captcha.setImgType("funcaptcha_compare");
          try {
              solver.solve(captcha);
              System.out.println("Captcha solved: " + captcha.getCode());
          } catch (Exception e) {
              System.out.println("Error occurred: " + e.getMessage());
          }
      }

  }
go Copy
  // https://github.com/2captcha/2captcha-go

  package main

  import (
      "fmt"
      "log"
      "github.com/2captcha/2captcha-go"
  )

  func main() {
      client := api2captcha.NewClient("API_KEY")
      captcha := api2captcha.Grid{
          File: "/path/to/captcha.jpg",
          ImgType: "funcaptcha_compare",
      }

      code, err := client.Solve(captcha.ToRequest())
      if err != nil {
          log.Fatal(err);
      }
      fmt.Println("code "+code)
  }
ruby Copy
  require 'api_2captcha'

  client =  Api2Captcha.new("YOUR_API_KEY")

  result = client.grid({
    image: 'path/to/captcha.jpg',
    imgType: 'funcaptcha_compare'
  })