ruby-2captcha 1.1.5 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec_status +16 -7
  3. data/.ruby-version +1 -1
  4. data/Gemfile.lock +5 -5
  5. data/README.md +403 -66
  6. data/README.ru.md +416 -76
  7. data/api_2captcha.gemspec +4 -1
  8. data/examples/alibaba_example.rb +16 -0
  9. data/examples/altcha_example.rb +12 -0
  10. data/examples/amazon_waf_example.rb +14 -0
  11. data/examples/atb_captcha_example.rb +11 -0
  12. data/examples/audio_example.rb +10 -0
  13. data/examples/basilisk_example.rb +15 -0
  14. data/examples/binance_example.rb +17 -0
  15. data/examples/canvas_example.rb +13 -0
  16. data/examples/captchafox_example.rb +20 -0
  17. data/examples/capy_example.rb +11 -0
  18. data/examples/cloudflare_turnstile_example.rb +15 -0
  19. data/examples/coordinates_example.rb +12 -0
  20. data/examples/cut_captcha_example.rb +11 -0
  21. data/examples/cyber_siara_example.rb +10 -0
  22. data/examples/datadome_example.rb +12 -0
  23. data/examples/drag_drop_example.rb +24 -0
  24. data/examples/friendly_captcha_example.rb +10 -0
  25. data/examples/funcaptcha_example.rb +10 -0
  26. data/examples/geetest_example.rb +12 -0
  27. data/examples/geetest_v4_example.rb +10 -0
  28. data/examples/grid_captcha_example.rb +14 -0
  29. data/examples/hcaptcha_example.rb +10 -0
  30. data/examples/hunt_example.rb +17 -0
  31. data/examples/key_captcha_example.rb +13 -0
  32. data/examples/lemin_example.rb +12 -0
  33. data/examples/media/drag_drop/background.jpeg +0 -0
  34. data/examples/media/drag_drop/image1.jpeg +0 -0
  35. data/examples/media/drag_drop/image2.jpeg +0 -0
  36. data/examples/media/example.mp3 +0 -0
  37. data/examples/media/normal_2.jpg +0 -0
  38. data/examples/media/recaptchaGrid4x4.jpg +0 -0
  39. data/examples/media/recaptchaGridImginstructions4x4.jpg +0 -0
  40. data/examples/media/temu/body.png +0 -0
  41. data/examples/media/temu/part1.png +0 -0
  42. data/examples/media/temu/part2.png +0 -0
  43. data/examples/media/temu/part3.png +0 -0
  44. data/examples/mt_captcha_example.rb +10 -0
  45. data/examples/normal_captcha_example.rb +11 -0
  46. data/examples/prosopo_example.rb +16 -0
  47. data/examples/recaptcha_v2_example.rb +10 -0
  48. data/examples/recaptcha_v3_example.rb +18 -0
  49. data/examples/rotate_example.rb +13 -0
  50. data/examples/temu_example.rb +28 -0
  51. data/examples/tencent_example.rb +10 -0
  52. data/examples/text_example.rb +10 -0
  53. data/examples/tspd_example.rb +19 -0
  54. data/examples/vkcaptcha_example.ru +10 -0
  55. data/examples/vkimage_example.rb +10 -0
  56. data/examples/yandex_example.rb +10 -0
  57. data/examples/yidun_example.rb +15 -0
  58. data/howto.txt +8 -0
  59. data/lib/api_2captcha/client.rb +77 -5
  60. data/lib/api_2captcha/version.rb +1 -1
  61. metadata +62 -7
data/README.ru.md CHANGED
@@ -1,42 +1,69 @@
1
- # Ruby 2Captcha API Client
1
+ <a href="https://github.com/2captcha/2captcha-python"><img src="https://github.com/user-attachments/assets/37e1d860-033b-4cf3-a158-468fc6b4debc" width="82" height="30"></a>
2
+ <a href="https://github.com/2captcha/2captcha-javascript"><img src="https://github.com/user-attachments/assets/4d3b4541-34b2-4ed2-a687-d694ce67e5a6" width="36" height="30"></a>
3
+ <a href="https://github.com/2captcha/2captcha-go"><img src="https://github.com/user-attachments/assets/ab22182e-6cb2-41fa-91f4-d5e89c6d7c6f" width="63" height="30"></a>
4
+ <a href="https://github.com/2captcha/2captcha-ruby"><img src="https://github.com/user-attachments/assets/1c3b6dc2-9acd-44fe-927d-31de3427639f" width="75" height="30"></a>
5
+ <a href="https://github.com/2captcha/2captcha-cpp"><img src="https://github.com/user-attachments/assets/36de8512-acfd-44fb-bb1f-b7c793a3f926" width="45" height="30"></a>
6
+ <a href="https://github.com/2captcha/2captcha-php"><img src="https://github.com/user-attachments/assets/e8797843-3f61-4fa9-a155-ab0b21fb3858" width="52" height="30"></a>
7
+ <a href="https://github.com/2captcha/2captcha-java"><img src="https://github.com/user-attachments/assets/a3d923f6-4fec-4c07-ac50-e20da6370911" width="50" height="30"></a>
8
+ <a href="https://github.com/2captcha/2captcha-csharp"><img src="https://github.com/user-attachments/assets/f4d449de-780b-49ed-bb0a-b70c82ec4b32" width="38" height="30"></a>
2
9
 
3
- Это самый простой способ быстро интегрировать [2Captcha] в ваш код и автоматизировать решение любого типа капчи.
10
+ # Ruby 2Captcha API Client (captcha solver)
4
11
 
5
- Ruby-клиент для API 2Captcha.
6
-
7
- - [Установка](#установка)
8
- - [Настройка](#настройка)
9
- - [Опции экземпляра клиента](#опции-экземпляра-клиента)
10
- - [Решение капчи](#решение-капчи)
11
- - [Обычная капча](#обычная-капча)
12
- - [Текстовая капча](#текстовая-капча)
13
- - [reCAPTCHA v2](#recaptcha-v2)
14
- - [reCAPTCHA v3](#recaptcha-v3)
15
- - [FunCaptcha](#funcaptcha)
16
- - [GeeTest](#geetest)
17
- - [hCaptcha](#hcaptcha)
18
- - [KeyCaptcha](#keycaptcha)
19
- - [Capy](#capy)
20
- - [Grid](#grid)
21
- - [Canvas](#canvas)
22
- - [ClickCaptcha](#clickcaptcha)
23
- - [Rotate](#rotate)
24
- - [AmazonWAF](#amazon-waf)
25
- - [CloudflareTurnstile](#cloudflare-turnstile)
26
- - [Lemin Cropped Captcha](#lemin-cropped-captcha)
27
- - [GeeTest V4](#geetest-v4)
28
- - [Аудио](#audio)
29
- - [CyberSiARA](#cybersiara)
30
- - [DataDome](#datadome)
31
- - [MTCaptcha](#mtcaptcha)
32
- - [Friendly captcha](#friendly-captcha)
33
- - [Cutcaptcha](#cutcaptcha)
34
- - [Другие методы](#другие-методы)
35
- - [send / get_result](#send--get_result)
36
- - [Баланс](#баланс)
37
- - [Отчет](#отчет)
38
- - [Прокси](#прокси)
39
- - [Обработка ошибок](#обработка-ошибок)
12
+ Это самый простой способ быстро интегрировать [2Captcha] в ваш код и автоматизировать решение любого типа капчи.
13
+ Примеры API-запросов для различных типов капч доступны на странице [Ruby captcha solver](https://2captcha.com/lang/ruby).
14
+
15
+ - [Ruby 2Captcha API Client (captcha solver)](#ruby-2captcha-api-client-captcha-solver)
16
+ - [Установка](#установка)
17
+ - [Настройка](#настройка)
18
+ - [Опции экземпляра клиента](#опции-экземпляра-клиента)
19
+ - [Решение капчи](#решение-капчи)
20
+ - [Обычная капча](#обычная-капча)
21
+ - [Текстовая капча](#текстовая-капча)
22
+ - [reCAPTCHA v2](#recaptcha-v2)
23
+ - [reCAPTCHA v3](#recaptcha-v3)
24
+ - [FunCaptcha](#funcaptcha)
25
+ - [GeeTest](#geetest)
26
+ - [GeeTest V4](#geetest-v4)
27
+ - [KeyCaptcha](#keycaptcha)
28
+ - [Capy](#capy)
29
+ - [Grid](#grid)
30
+ - [Canvas](#canvas)
31
+ - [ClickCaptcha](#clickcaptcha)
32
+ - [Rotate](#rotate)
33
+ - [Amazon WAF](#amazon-waf)
34
+ - [Cloudflare Turnstile](#cloudflare-turnstile)
35
+ - [Lemin Cropped Captcha](#lemin-cropped-captcha)
36
+ - [Распознавание аудио](#распознавание-аудио)
37
+ - [CyberSiARA](#cybersiara)
38
+ - [DataDome](#datadome)
39
+ - [MTCaptcha](#mtcaptcha)
40
+ - [Friendly captcha](#friendly-captcha)
41
+ - [Cutcaptcha](#cutcaptcha)
42
+ - [Tencent](#tencent)
43
+ - [atbCAPTCHA](#atbcaptcha)
44
+ - [Prosopo](#prosopo)
45
+ - [Captchafox](#captchafox)
46
+ - [Temu](#temu)
47
+ - [VK Captcha](#vk-captcha)
48
+ - [Altcha Captcha](#altcha-captcha)
49
+ - [Binancecaptcha](#binancecaptcha)
50
+ - [Hunt Captcha](#hunt-captcha)
51
+ - [Tspd](#tspd)
52
+ - [Basilisk](#basilisk)
53
+ - [Alibaba](#alibaba)
54
+ - [Yidun](#yidun)
55
+ - [Drag & Drop Captcha](#drag--drop-captcha)
56
+ - [Другие методы](#другие-методы)
57
+ - [send / get_result](#send--get_result)
58
+ - [Баланс](#баланс)
59
+ - [Отчет](#отчет)
60
+ - [Прокси](#прокси)
61
+ - [Обработка ошибок](#обработка-ошибок)
62
+ - [Примеры](#примеры)
63
+ - [Свяжитесь с нами](#свяжитесь-с-нами)
64
+ - [Присоединяйтесь к команде 👪](#join-the-team)
65
+ - [Лицензия](#лицензия)
66
+ - [Графика и товарные знаки](#графика-и-товарные-знаки)
40
67
 
41
68
  ## Установка
42
69
  Автоматическая установка гема с помощью Bundler. Добавьте следующую строку в ваш Gemfile:
@@ -62,7 +89,7 @@ gem install ruby-2captcha
62
89
 
63
90
  Описание всех необходимых параметров для настройки установленного гема.
64
91
 
65
- Экземпляр класса Api2Captcha можно создать следующим образом:
92
+ Экземпляр класса `Api2Captcha` можно создать следующим образом:
66
93
 
67
94
  ```ruby
68
95
  require 'api_2captcha'
@@ -70,7 +97,7 @@ require 'api_2captcha'
70
97
  client = Api2Captcha.new("YOUR_API_KEY")
71
98
  ```
72
99
  ### Опции экземпляра клиента
73
- У вас также есть возможность настроить некоторые параметры экземпляра Api2Captcha:
100
+ У вас также есть возможность настроить некоторые параметры экземпляра `Api2Captcha`:
74
101
 
75
102
  ```ruby
76
103
  client.soft_id(123)
@@ -80,28 +107,34 @@ client.default_timeout(120)
80
107
  client.polling_interval(10)
81
108
  ```
82
109
 
83
- **ВАЖНО**: после определения обратного вызова для экземпляра , все методы возвращают только идентификатор капчи и НЕ запрашивают результат у API. Результат будет отправлен на URL обратного вызова. Чтобы получить ответ вручную, используйте метод get_result.
110
+ > [!IMPORTANT]
111
+ > После определения обратного вызова для экземпляра, все методы возвращают только идентификатор капчи и НЕ запрашивают результат у API. Результат будет отправлен на URL обратного вызова.
112
+
113
+ Чтобы получить ответ вручную, используйте метод [get_result](#send--get_result).
84
114
 
85
115
  ## Решение капчи
86
- При отправке любой капчи, основанной на изображении, вы можете предоставить дополнительные параметры, чтобы помочь работникам 2Captcha правильно ее решить.
116
+ При отправке любой капчи, основанной на изображении, вы можете предоставить дополнительные параметры, чтобы помочь работникам 2Captcha правильно её решить.
87
117
 
88
118
  ### Параметры капчи
89
119
 
90
- | Параметр | Значение по умолчанию | Описание |
91
- |-------------------|---------------|-------------------------------------------------------------------------------------------------------------------------------|
92
- | numeric | 0 | Определяет, содержит ли капча числа или другие символы [подробнее см. в документации по API](https://2captcha.com/2captcha-api#solving_normal_captcha) |
93
- | min_len | 0 | Минимальная длина ответа length |
94
- | max_len | 0 | Максимальная длина ответа length |
95
- | phrase | 0 | Определяет, содержит ли ответ несколько слов или нет |
96
- | case_sensitive | 0 | Определяет, учитывается ли регистр в ответе |
97
- | calc | 0 | Определяет, требуется ли вычисление в решении капчи |
120
+ | Параметр | Значение по умолчанию | Описание |
121
+ |-------------------|---------------|--------------------------------------------------------------------------------------------------------------------|
122
+ | numeric | 0 | Определяет, содержит ли капча числа или другие символы [подробнее см. в документации по API](https://2captcha.com/2captcha-api#solving_normal_captcha) |
123
+ | min_len | 0 | Минимальная длина ответа length |
124
+ | max_len | 0 | Максимальная длина ответа length |
125
+ | phrase | 0 | Определяет, содержит ли ответ несколько слов или нет |
126
+ | case_sensitive | 0 | Определяет, учитывается ли регистр в ответе |
127
+ | calc | 0 | Определяет, требуется ли вычисление в решении капчи |
98
128
  | lang | - | Определяет язык капчи, см. [список поддерживаемых языков](https://2captcha.com/2captcha-api#language) |
99
- | hint_image | - | Изображение с подсказкой, показываемое работникам с капчей, переведенное из параметра API instructionsimg |
100
- | hint_text | - | Подсказка или текст задания, показываемые работникам с капчей |
129
+ | hint_image | - | Изображение с подсказкой, показываемое работникам с капчей, переведенное из параметра API instructionsimg |
130
+ | hint_text | - | Подсказка или текст задания, показываемые работникам с капчей |
101
131
 
102
132
  Ниже вы найдете основные примеры для каждого типа капчи. Ознакомьтесь с кодом ниже.
103
133
 
104
134
  ### Обычная капча
135
+
136
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_normal_captcha)</sup>
137
+
105
138
  Для обхода обычной капчи (искаженный текст на картинке) используйте следующий метод. Этот метод также может использоваться для распознавания любого текста на картинке.
106
139
 
107
140
  ```ruby
@@ -111,8 +144,11 @@ result = client.normal({
111
144
  image: 'https://site-with-captcha.com/path/to/captcha.jpg'
112
145
  })
113
146
  ```
147
+
114
148
  ### Текстовая капча
115
149
 
150
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_text_captcha)</sup>
151
+
116
152
  Этот метод может использоваться для обхода капчи, которая требует ответить на вопрос, представленный в явном виде.
117
153
 
118
154
  ```ruby
@@ -123,6 +159,9 @@ result = client.text({
123
159
  ```
124
160
 
125
161
  ### reCAPTCHA v2
162
+
163
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_recaptchav2_new)</sup>
164
+
126
165
  Используйте этот метод для решения reCAPTCHA v2 и получения токена для обхода защиты.
127
166
 
128
167
  ```ruby
@@ -134,6 +173,9 @@ result = client.recaptcha_v2({
134
173
  ```
135
174
 
136
175
  ### reCAPTCHA v3
176
+
177
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_recaptchav3)</sup>
178
+
137
179
  Этот метод предоставляет решение для reCAPTCHA v3 и возвращает токен.
138
180
 
139
181
  ```ruby
@@ -147,6 +189,9 @@ result = client.recaptcha_v3({
147
189
  ```
148
190
 
149
191
  ### FunCaptcha
192
+
193
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_funcaptcha_new)</sup>
194
+
150
195
  Метод решения FunCaptcha (Arkoselabs). Он возвращает токен.
151
196
 
152
197
  ```ruby
@@ -157,6 +202,9 @@ result = client.funcaptcha({
157
202
  ```
158
203
 
159
204
  ### GeeTest
205
+
206
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_geetest)</sup>
207
+
160
208
  Метод для решения головоломки GeeTest captcha. Он возвращает набор токенов в формате JSON.
161
209
 
162
210
  ```ruby
@@ -168,17 +216,24 @@ result = client.geetest({
168
216
  })
169
217
  ```
170
218
 
171
- ### hCaptcha
172
- Метод решения hCaptcha. Он возвращает токен для обхода капчи.
219
+ ### GeeTest v4
220
+
221
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#geetest-v4)</sup>
222
+
223
+ Используйте этот метод для решения GeeTest v4. Он возвращает ответ в формате JSON.
173
224
 
174
225
  ```ruby
175
- result = client.hcaptcha({
176
- sitekey: '10000000-ffff-ffff-ffff-000000000001',
226
+ result = client.geetest_v4({
227
+ captcha_id: 'e392e1d7fd421dc63325744d5a2b9c73',
177
228
  pageurl: 'https://www.site.com/page/'
178
229
  })
179
230
  ```
180
231
 
232
+
181
233
  ### KeyCaptcha
234
+
235
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_keycaptcha)</sup>
236
+
182
237
  Метод на основе токенов для решения KeyCaptcha.
183
238
 
184
239
  ```ruby
@@ -192,6 +247,9 @@ result = client.keycaptcha({
192
247
  ```
193
248
 
194
249
  ### Capy
250
+
251
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_capy)</sup>
252
+
195
253
  Метод основан на использовании токенов для обхода паззла Capy.
196
254
 
197
255
  ```ruby
@@ -203,21 +261,27 @@ result = client.capy({
203
261
  ```
204
262
 
205
263
  ### Grid
264
+
265
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#grid)</sup>
266
+
206
267
  Метод сетки изначально называется методом Old ReCaptcha V2. Этот метод может быть использован для обхода любого типа капчи, где вы можете применить сетку к изображению и необходимо кликнуть по определенным ячейкам сетки. Он возвращает количество выбранных ячеек.
207
268
 
208
269
  ```ruby
209
270
  result = client.grid({
210
271
  image: 'path/to/captcha.jpg',
211
- rows: 3,
212
- cols: 3,
272
+ recaptcharows: 3,
273
+ recaptchacols: 3,
213
274
  previous_id: 0,
214
275
  lang: 'en',
215
- hint_image: 'path/to/hint.jpg',
216
- hint_text: 'Select all images with an Orange'
276
+ imginstructions: 'path/to/hint.jpg',
277
+ textinstructions: 'Select all images with an Orange'
217
278
  })
218
279
  ```
219
280
 
220
281
  ### Canvas
282
+
283
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#canvas)</sup>
284
+
221
285
  Метод Canvas может быть использован, когда вам необходимо нарисовать линию вокруг объекта на изображении. Он возвращает набор координат точек для рисования многоугольника.
222
286
 
223
287
  ```ruby
@@ -231,6 +295,9 @@ result = client.canvas({
231
295
  ```
232
296
 
233
297
  ### ClickCaptcha
298
+
299
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#coordinates)</sup>
300
+
234
301
  Метод ClickCaptcha возвращает координаты точек на изображении капчи. Может быть использован, если вам необходимо кликнуть по определенным точкам на изображении.
235
302
 
236
303
  ```ruby
@@ -243,6 +310,9 @@ result = client.coordinates({
243
310
  ```
244
311
 
245
312
  ### Rotate
313
+
314
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_rotatecaptcha)</sup>
315
+
246
316
  Этот метод может быть использован для решения капчи, которая просит повернуть объект. В основном используется для обхода FunCaptcha. Он возвращает угол поворота.
247
317
 
248
318
  ```ruby
@@ -257,7 +327,10 @@ result = client.rotate({
257
327
 
258
328
 
259
329
  ### Lemin Cropped Captcha
260
- Используйте этот метод для решения задания hCaptcha. Он возвращает JSON-ответ с указанными значениями: ответ (answer) и идентификатор задания (challenge_id).
330
+
331
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#lemin)</sup>
332
+
333
+ Используйте этот метод для решения задания Lemin. Он возвращает JSON-ответ с указанными значениями: ответ (answer) и идентификатор задания (challenge_id).
261
334
 
262
335
  ```ruby
263
336
  result = client.lemin({
@@ -270,6 +343,9 @@ result = client.lemin({
270
343
 
271
344
 
272
345
  ### Cloudflare Turnstile
346
+
347
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#turnstile)</sup>
348
+
273
349
  Используйте этот метод для решения задачи Cloudflare Turnstile. Он возвращает JSON с токеном.
274
350
 
275
351
  ```ruby
@@ -280,6 +356,9 @@ result = client.turnstile({
280
356
  ```
281
357
 
282
358
  ### Amazon WAF
359
+
360
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#amazon-waf)</sup>
361
+
283
362
  Используйте этот метод для решения Captcha Amazon WAF, также известного как AWS WAF Captcha, который является частью интеллектуальной защиты от угроз для Amazon AWS. Он возвращает JSON с токеном.
284
363
 
285
364
  ```ruby
@@ -293,27 +372,25 @@ result = client.amazon_waf({
293
372
  })
294
373
  ```
295
374
 
296
- ### GeeTest v4
297
- Используйте этот метод для решения GeeTest v4. Он возвращает ответ в формате JSON.
375
+ ### Распознавание аудио
298
376
 
299
- ```ruby
300
- result = client.geetest_v4({
301
- captcha_id: 'e392e1d7fd421dc63325744d5a2b9c73',
302
- pageurl: 'https://www.site.com/page/'
303
- })
304
- ```
377
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#audio)</sup>
305
378
 
306
- ### Audio
307
- Этот метод можно использовать для решения аудио-капчи.
379
+ Этот метод можно использовать как для решения аудио капчи, так и для распознавания любой аудиозаписи.
380
+
381
+ Поддерживаемые языки: "en", "ru", "de", "el", "pt", "fr".
308
382
 
309
383
  ```ruby
310
384
  result = client.audio({
311
- audio: 'path/to/audio.jpg',
385
+ audio: 'path/to/audio.mp3',
312
386
  lang: "en"
313
387
  })
314
388
  ```
315
389
 
316
390
  ### CyberSiARA
391
+
392
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#cybersiara)</sup>
393
+
317
394
  Метод решения CyberSiARA. Он возвращает токен для обхода капчи.
318
395
 
319
396
  ```ruby
@@ -324,8 +401,13 @@ result = client.cyber_siara({
324
401
  ```
325
402
 
326
403
  ### DataDome
327
- Метод решения DataDome вернет токен для обхода капчи.
328
- Чтобы решить капчу DataDome вы должны обязательно использовать прокси.
404
+
405
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#datadome)</sup>
406
+
407
+ Метод решения DataDome вернет `cookies` для обхода капчи.
408
+
409
+ > [!IMPORTANT]
410
+ > Чтобы решить капчу DataDome вы должны обязательно использовать прокси. Рекомендуется использовать [резидентные прокси].
329
411
 
330
412
  ```ruby
331
413
  result = client.data_dome({
@@ -338,6 +420,9 @@ result = client.data_dome({
338
420
 
339
421
 
340
422
  ### MTCaptcha
423
+
424
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#mtcaptcha)</sup>
425
+
341
426
  Метод решения MTCaptcha. Он возвращает токен для обхода капчи.
342
427
 
343
428
  ```ruby
@@ -349,8 +434,14 @@ result = client.mt_captcha({
349
434
 
350
435
 
351
436
  ### Friendly captcha
437
+
438
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#friendly-captcha)</sup>
439
+
352
440
  Метод решения Friendly captcha. Он возвращает токен для обхода капчи.
353
441
 
442
+ > [!IMPORTANT]
443
+ > Чтобы успешно использовать полученный токен, виджет капчи не должен быть загружен на странице. Для этого необходимо прервать запрос к `/friendlycaptcha/...module.min.js` на странице. Если виджет капчи уже загружен на странице, существует высокая вероятность, что полученный токен не будет работать.
444
+
354
445
  ```ruby
355
446
  result = client.friendly({
356
447
  pageurl: "https://example.com",
@@ -358,8 +449,10 @@ result = client.friendly({
358
449
  })
359
450
  ```
360
451
 
361
-
362
452
  ### Cutcaptcha
453
+
454
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#cutcaptcha)</sup>
455
+
363
456
  Метод решения Cutcaptcha. Он возвращает токен для обхода капчи.
364
457
 
365
458
  ```ruby
@@ -370,6 +463,222 @@ result = client.cutcaptcha({
370
463
  })
371
464
  ```
372
465
 
466
+ ### Tencent
467
+
468
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#tencent)</sup>
469
+
470
+ Основанный на токенах метод автоматизированного решения капчи Tencent.
471
+ ```ruby
472
+ result = client.tencent({
473
+ app_id: "197326679",
474
+ pageurl: "https://mysite.com/page/with/tencent"
475
+ })
476
+ ```
477
+
478
+ ### atbCAPTCHA
479
+
480
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#atb-captcha)</sup>
481
+
482
+ Основанный на токенах метод автоматизированного решения капчи atbCAPTCHA.
483
+ ```ruby
484
+ result = client.atb_captcha({
485
+ app_id: "197326679",
486
+ api_server: "api.atb_captcha.com",
487
+ pageurl: "https://mysite.com/page/with/atb_captcha"
488
+ })
489
+ ```
490
+
491
+ ### Prosopo
492
+
493
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#prosopo-procaptcha)</sup>
494
+
495
+ Основанный на токенах метод автоматизированного решения капчи Prosopo.
496
+
497
+ ```ruby
498
+ result = client.prosopo({
499
+ pageurl: "https://www.twickets.live/",
500
+ sitekey: "5EZVvsHMrKCFKp5NYNoTyDjTjetoVo1Z4UNNbTwJf1GfN6Xm"
501
+ })
502
+ ```
503
+
504
+ ### Captchafox
505
+
506
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#captchafox)</sup>
507
+
508
+ Основанный на токенах метод автоматизированного решения капчи Captchafox.
509
+
510
+ ```ruby
511
+ result = client.captchafox({
512
+ sitekey: "sitekey",
513
+ pageurl: "https://pageurl/",
514
+ api_server: "https://mam.example.com",
515
+ userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/131.0.0.0 Safari/537.36",
516
+ proxytype: "socks5",
517
+ proxy: "proxyuser:strongPassword@123.123.123.123:3128"
518
+ })
519
+ ```
520
+
521
+ ### Temu
522
+
523
+ <sup>[API method description.](https://2captcha.com/2captcha-api#temucaptcha)</sup>
524
+
525
+ Основанный на токенах метод автоматизированного решения капчи Temu.
526
+
527
+ ```ruby
528
+ result = client.temu({
529
+ body: bodyStr,
530
+ part1: part1Str,
531
+ part2: part2Str,
532
+ part3: part3Str,
533
+ ### VK Image
534
+
535
+ <sup>[API описание метода.](https://2captcha.com/2captcha-api#vkcaptcha)</sup>
536
+
537
+ Мы используем текст (изображение в формате base64) или файл (изображение как файл) и параметры steps.
538
+ Вы можете получить оба значения из ответа на запрос https://api.vk.com/method/captchaNotRobot.getContent?v={API_VER} при загрузке виджета captcha на страницу.
539
+
540
+ ```ruby
541
+ result = client.vkimage({
542
+ image: '/9j/4AAQSkZJRgABAQAAAQABAAD/2...',
543
+ steps: '[5,19,14,14,6,4,8...]'
544
+ })
545
+ ```
546
+
547
+ ### VK Captcha
548
+
549
+ <sup>[API описание метода.](https://2captcha.com/2captcha-api#vkcaptcha)</sup>
550
+
551
+ Для метода, основанного на токенах, требуется параметр `redirect_uri`, а также прокси-сервер и UserAgent. Значение параметра `redirect_uri` можно найти в ответах на запросы к VK API, которые возвращают captcha.
552
+
553
+ ```ruby
554
+ result = client.vkcaptcha({
555
+ redirect_uri: 'https://id.vk.com/not_robot_captcha?domain=vk.com&session_token=eyJ....HGsc5B4LyvjA&variant=popup&blank=1',
556
+ userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'
557
+ })
558
+ ```
559
+
560
+ ### Altcha Captcha
561
+ <sup>[Описание метода API](https://2captcha.com/2captcha-api#altchacaptcha)</sup>
562
+
563
+ Используйте этот метод для решения капчи Altcha. В ответ возвращается токен.
564
+
565
+ ```ruby
566
+ result = client.altcha({
567
+ pageurl: 'https://mysite.com/page/with/altcha',
568
+ challenge: '{"algorithm":"SHA-256","challenge":"a4c9d8e7f1b23a6c...","signature":"7b3e2a9d5c8f1046e2d91c3a..."}'
569
+ # или:
570
+ # challenge_url: 'https://example.com/altcha-challenge'
571
+ })
572
+ ```
573
+
574
+ ### Binancecaptcha
575
+
576
+ <sup>[Описание метода API](https://2captcha.com/2captcha-api#binance)</sup>
577
+
578
+ Используйте этот метод для решения капчи Binancecaptcha. В ответ возвращается токен.
579
+
580
+ ```ruby
581
+ result = client.binance({
582
+ sitekey => "login",
583
+ url => "https://example.com/page-with-binance",
584
+ validate_id => "cb0bfef...e54ecd57b"
585
+ })
586
+ ```
587
+
588
+ ### Hunt Captcha
589
+
590
+ <sup>[Описание метода API](https://2captcha.com/2captcha-api#hunt)</sup>
591
+
592
+ Основанный на токенах метод автоматизированного решения Hunt captcha. Использует двухшаговый процесс: первый запрос без `data` возвращает X-HD fingerprint; после отправки его на сайт и получения `meta.token` второй запрос с `data` возвращает финальный токен.
593
+
594
+ > [!IMPORTANT]
595
+ > Для решения Hunt captcha необходимо использовать прокси. Рекомендуется использовать [резидентные прокси].
596
+
597
+ ```ruby
598
+ result = client.hunt({
599
+ pageurl: "https://example.com/page-with-hunt",
600
+ api_get_lib: "https://example.com/hd-api/external/apps/app-id/api.js",
601
+ userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
602
+ proxytype: "http",
603
+ proxy: "proxyuser:strongPassword@123.123.123.123:3128"
604
+ })
605
+ ```
606
+
607
+ ### Tspd
608
+
609
+ <sup>[Описание метода API](https://2captcha.com/2captcha-api#tspd)</sup>
610
+
611
+ Используйте этот метод для решения капчи TSPD. В ответ возвращаются cookies. Прокси обязателен — режима без прокси не существует.
612
+
613
+ > [!IMPORTANT]
614
+ > Для решения TSPD captcha необходимо использовать прокси. Один и тот же IP-адрес должен использоваться на всех этапах: получение cookies, решение задачи и использование результата.
615
+
616
+ ```ruby
617
+ result = client.tspd({
618
+ pageurl: "https://example.com/page-with-tspd",
619
+ tspd_cookie: "TS...",
620
+ html_page_base64: "PGh0bWw+...",
621
+ userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
622
+ proxytype: "http",
623
+ proxy: "proxyuser:strongPassword@123.123.123.123:3128"
624
+ })
625
+ ```
626
+
627
+ ### Basilisk
628
+
629
+ <sup>[Описание метода API](https://2captcha.com/2captcha-api#basilisk)</sup>
630
+
631
+ Основанный на токенах метод автоматизированного решения капчи Basilisk.
632
+
633
+ ```ruby
634
+ result = client.basilisk({
635
+ pageurl: "https://example.com/page-with-basilisk",
636
+ sitekey: "SITE_KEY"
637
+ })
638
+ ```
639
+
640
+ ### Alibaba
641
+
642
+ <sup>[Описание метода API](https://2captcha.com/2captcha-api#alibaba)</sup>
643
+
644
+ Основанный на токенах метод автоматизированного решения капчи Alibaba.
645
+
646
+ ```ruby
647
+ result = client.alibaba({
648
+ pageurl: "https://example.com/page-with-alibaba",
649
+ scene_id: "SCENE_ID",
650
+ prefix: "PREFIX"
651
+ })
652
+ ```
653
+
654
+ ### Yidun
655
+
656
+ <sup>[Описание метода API](https://2captcha.com/2captcha-api#yidun)</sup>
657
+
658
+ Основанный на токенах метод автоматизированного решения капчи Yidun.
659
+
660
+ ```ruby
661
+ result = client.yidun({
662
+ pageurl: "https://example.com/page-with-yidun",
663
+ sitekey: "SITE_KEY"
664
+ })
665
+ ```
666
+
667
+ ### Drag & Drop Captcha
668
+
669
+ <sup>[Описание метода API](https://2captcha.com/2captcha-api#drag-and-drop-captcha)</sup>
670
+
671
+ Используйте этот метод для решения капч, где одну или несколько картинок нужно перетащить на определённые позиции фонового изображения. `body` — фоновое изображение, `images` — массив изображений для перетаскивания, оба в Base64 — файлы нужно прочитать и закодировать самостоятельно, как показано ниже. Порядок `images` важен: в ответе используется тот же порядок.
672
+
673
+ В ответе приходит строка с координатами для каждой картинки из `images`, разделёнными `|`. Если картинку двигать не нужно, для неё возвращается буквальное значение `null`.
674
+
675
+ ```ruby
676
+ result = client.drag_drop({
677
+ body: bodyStr,
678
+ images: [image1Str, image2Str],
679
+ textinstructions: "Drag the images to proper position"
680
+ })
681
+ ```
373
682
 
374
683
  ## Другие методы
375
684
 
@@ -395,6 +704,9 @@ time.sleep(20)
395
704
  result = client.get_result(captcha_id)
396
705
  ```
397
706
  ### Баланс
707
+
708
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#additional-methods)</sup>
709
+
398
710
  Используйте этот метод, чтобы посмотреть баланс в вашем аккаунте.
399
711
 
400
712
  ```ruby
@@ -402,6 +714,9 @@ balance = client.get_balance
402
714
  ```
403
715
 
404
716
  ### Отчет
717
+
718
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#complain)</sup>
719
+
405
720
  Используйте этот метод для отправки отчета о правильном или неправильном ответе на капчу.
406
721
 
407
722
  ```ruby
@@ -411,7 +726,7 @@ client.report(captcha_id, False) # капча решена неправильн
411
726
 
412
727
  ## Прокси
413
728
 
414
- Вы можете передать свой прокси-сервер в качестве дополнительного аргумента для методов: recaptcha, funcaptcha, geetest, geetest v4, hcaptcha, keycaptcha, capy puzzle, lemin, turnstile, amazon waf, Cutcaptcha, Friendly captcha, MTCaptcha, DataDome, CyberSiARA и других. Передынный Прокси-сервер будет перенаправлен в API и будет использован для загрузки капчи.
729
+ Вы можете передать свой прокси-сервер в качестве дополнительного аргумента для методов: recaptcha, funcaptcha, geetest, geetest v4, keycaptcha, capy puzzle, lemin, turnstile, amazon waf, Cutcaptcha, Friendly captcha, MTCaptcha, DataDome, CyberSiARA и других. Передынный Прокси-сервер будет перенаправлен в API и будет использован для загрузки капчи.
415
730
 
416
731
  У нас есть свои собственные прокси-серверы, которые мы можем вам предложить. [Купить резидентские прокси] чтобы избежать ограничений и блокировок. [Быстрый старт].
417
732
 
@@ -448,7 +763,32 @@ result = client.recaptcha_v2({
448
763
  end
449
764
  ```
450
765
 
766
+ ## Примеры
767
+
768
+ Примеры решения поддерживаемых типов капчи находятся в директории [examples].
769
+
770
+ ## Свяжитесь с нами
771
+
772
+ <a href="mailto:support@2captcha.com"><img src="https://github.com/user-attachments/assets/539df209-7c85-4fa5-84b4-fc22ab93fac7" width="80" height="30"></a>
773
+ <a href="https://2captcha.com/support/tickets/new"><img src="https://github.com/user-attachments/assets/be044db5-2e67-46c6-8c81-04b78bd99650" width="81" height="30"></a>
774
+
775
+ <h2 id='join-the-team'>Присоединяйтесь к команде 👪</h2>
776
+
777
+ Есть много способов внести свой вклад, и разработка - лишь один из них! Найдите свою следующую работу. Открытые вакансии: AI experts, scrapers, developers, technical support, и многое другое! 😍
778
+
779
+ <a href="mailto:job@2captcha.com"><img src="https://github.com/user-attachments/assets/36d23ef5-7866-4841-8e17-261cc8a4e033" width="80" height="30"></a>
780
+
781
+ ## Лицензия
782
+
783
+ Код в этом репозитории лицензируется по лицензии MIT. Более подробную информацию см. в файле [LICENSE](./LICENSE).
784
+
785
+ ### Графика и товарные знаки
786
+
787
+ Графика и товарные знаки, включенные в этот репозиторий, не подпадают под действие лицензии MIT. За разрешениями на использование этих материалов обращайтесь в <a href="mailto:support@2captcha.com">службу поддержки</a>.
788
+
451
789
  <!-- Shared links -->
452
790
  [2Captcha]: https://2captcha.com/
453
791
  [Купить резидентские прокси]: https://2captcha.com/proxy/residential-proxies
454
- [Быстрый старт]: https://2captcha.com/proxy?openAddTrafficModal=true
792
+ [Быстрый старт]: https://2captcha.com/proxy?openAddTrafficModal=true
793
+ [резидентные прокси]: https://2captcha.com/proxy/residential-proxies
794
+ [examples]: ./examples/