ruby-2captcha 1.1.4 → 1.1.6

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.
data/README.ru.md CHANGED
@@ -1,51 +1,72 @@
1
- # Ruby 2Captcha API Client
2
-
3
- Это самый простой способ быстро интегрировать 2Captcha в ваш код и автоматизировать решение любого типа капчи.
4
-
5
- Ruby-клиент для API 2Captcha.
6
-
7
- - [Установка](#installation)
8
- - [Настройка](#configuration)
9
- - [Опции экземпляра клиента](#client-instance-options)
10
- - [Решение капчи](#solve-captcha)
11
- - [Обычная капча](#normal-captcha)
12
- - [Текстовая капча](#text-captcha)
13
- - [ReCaptcha v2](#recaptcha-v2)
14
- - [ReCaptcha v3](#recaptcha-v3)
15
- - [GeeTest](#geetest)
16
- - [hCaptcha](#hcaptcha)
17
- - [KeyCaptcha](#keycaptcha)
18
- - [Capy](#capy)
19
- - [Grid](#grid)
20
- - [Canvas](#canvas)
21
- - [ClickCaptcha](#clickcaptcha)
22
- - [Rotate](#rotate)
23
- - [AmazonWAF](#amazon-waf)
24
- - [CloudflareTurnstile](#cloudflare-turnstile)
25
- - [Lemin Cropped Captcha](#lemin-cropped-captcha)
26
- - [GeeTest V4](#geetest-v4)
27
- - [Аудио](#audio)
28
- - [CyberSiARA](#cybersiara)
29
- - [DataDome](#datadome)
30
- - [MTCaptcha](#mtcaptcha)
31
- - [Friendly captcha](#friendly-captcha)
32
- - [Другие методы](#other-methods)
33
- - [send / get_result](#send--get_result)
34
- - [balance](#balance)
35
- - [report](#report)
36
- - [Обработка ошибок](#error-handling)
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>
9
+
10
+ # Ruby 2Captcha API Client (captcha solver)
11
+
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
+ - [Другие методы](#другие-методы)
45
+ - [send / get_result](#send--get_result)
46
+ - [Баланс](#баланс)
47
+ - [Отчет](#отчет)
48
+ - [Прокси](#прокси)
49
+ - [Обработка ошибок](#обработка-ошибок)
50
+ - [Примеры](#примеры)
51
+ - [Свяжитесь с нами](#свяжитесь-с-нами)
52
+ - [Присоединяйтесь к команде 👪](#join-the-team)
53
+ - [Лицензия](#лицензия)
54
+ - [Графика и товарные знаки](#графика-и-товарные-знаки)
37
55
 
38
56
  ## Установка
39
57
  Автоматическая установка гема с помощью Bundler. Добавьте следующую строку в ваш Gemfile:
58
+
40
59
  ```ruby
41
60
  gem 'ruby-2captcha'
42
61
  ```
43
62
  Затем выполните следующую команду в терминале:
63
+
44
64
  ```ruby
45
65
  bundle install
46
66
  ```
47
67
 
48
68
  Или установите его самостоятельно, выполнив следующую команду в терминале:
69
+
49
70
  ```ruby
50
71
  gem install ruby-2captcha
51
72
  ```
@@ -56,15 +77,15 @@ gem install ruby-2captcha
56
77
 
57
78
  Описание всех необходимых параметров для настройки установленного гема.
58
79
 
59
- Экземпляр класса Api2Captcha можно создать следующим образом:
80
+ Экземпляр класса `Api2Captcha` можно создать следующим образом:
60
81
 
61
82
  ```ruby
62
83
  require 'api_2captcha'
63
84
 
64
85
  client = Api2Captcha.new("YOUR_API_KEY")
65
86
  ```
66
-
67
- У вас также есть возможность настроить некоторые параметры экземпляра Api2Captcha:
87
+ ### Опции экземпляра клиента
88
+ У вас также есть возможность настроить некоторые параметры экземпляра `Api2Captcha`:
68
89
 
69
90
  ```ruby
70
91
  client.soft_id(123)
@@ -74,29 +95,36 @@ client.default_timeout(120)
74
95
  client.polling_interval(10)
75
96
  ```
76
97
 
77
- **ВАЖНО**: после определения обратного вызова для экземпляра , все методы возвращают только идентификатор капчи и НЕ запрашивают результат у API. Результат будет отправлен на URL обратного вызова. Чтобы получить ответ вручную, используйте метод get_result.
98
+ > [!IMPORTANT]
99
+ > После определения обратного вызова для экземпляра, все методы возвращают только идентификатор капчи и НЕ запрашивают результат у API. Результат будет отправлен на URL обратного вызова.
100
+
101
+ Чтобы получить ответ вручную, используйте метод [get_result](#send--get_result).
78
102
 
79
103
  ## Решение капчи
80
- При отправке любой капчи, основанной на изображении, вы можете предоставить дополнительные параметры, чтобы помочь работникам 2Captcha правильно ее решить.
104
+ При отправке любой капчи, основанной на изображении, вы можете предоставить дополнительные параметры, чтобы помочь работникам 2Captcha правильно её решить.
81
105
 
82
106
  ### Параметры капчи
83
107
 
84
- | Параметр | Значение по умолчанию | Описание |
85
- |-------------------|---------------|-------------------------------------------------------------------------------------------------------------------------------|
86
- | numeric | 0 | Определяет, содержит ли капча числа или другие символы [подробнее см. в документации по API](https://2captcha.com/2captcha-api#normal_post) |
87
- | min_len | 0 | Минимальная длина ответа length |
88
- | max_len | 0 | Максимальная длина ответа length |
89
- | phrase | 0 | Определяет, содержит ли ответ несколько слов или нет |
90
- | case_sensitive | 0 | Определяет, учитывается ли регистр в ответе |
91
- | calc | 0 | Определяет, требуется ли вычисление в решении капчи |
108
+ | Параметр | Значение по умолчанию | Описание |
109
+ |-------------------|---------------|--------------------------------------------------------------------------------------------------------------------|
110
+ | numeric | 0 | Определяет, содержит ли капча числа или другие символы [подробнее см. в документации по API](https://2captcha.com/2captcha-api#solving_normal_captcha) |
111
+ | min_len | 0 | Минимальная длина ответа length |
112
+ | max_len | 0 | Максимальная длина ответа length |
113
+ | phrase | 0 | Определяет, содержит ли ответ несколько слов или нет |
114
+ | case_sensitive | 0 | Определяет, учитывается ли регистр в ответе |
115
+ | calc | 0 | Определяет, требуется ли вычисление в решении капчи |
92
116
  | lang | - | Определяет язык капчи, см. [список поддерживаемых языков](https://2captcha.com/2captcha-api#language) |
93
- | hint_image | - | Изображение с подсказкой, показываемое работникам с капчей, переведенное из параметра API instructionsimg |
94
- | hint_text | - | Подсказка или текст задания, показываемые работникам с капчей |
117
+ | hint_image | - | Изображение с подсказкой, показываемое работникам с капчей, переведенное из параметра API instructionsimg |
118
+ | hint_text | - | Подсказка или текст задания, показываемые работникам с капчей |
95
119
 
96
120
  Ниже вы найдете основные примеры для каждого типа капчи. Ознакомьтесь с кодом ниже.
97
121
 
98
122
  ### Обычная капча
123
+
124
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_normal_captcha)</sup>
125
+
99
126
  Для обхода обычной капчи (искаженный текст на картинке) используйте следующий метод. Этот метод также может использоваться для распознавания любого текста на картинке.
127
+
100
128
  ```ruby
101
129
  result = client.normal({ image: 'path/to/captcha.jpg'})
102
130
  # OR
@@ -106,7 +134,11 @@ result = client.normal({
106
134
  ```
107
135
 
108
136
  ### Текстовая капча
137
+
138
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_text_captcha)</sup>
139
+
109
140
  Этот метод может использоваться для обхода капчи, которая требует ответить на вопрос, представленный в явном виде.
141
+
110
142
  ```ruby
111
143
  result = client.text({
112
144
  textcaptcha:'Если завтра суббота, то какой сегодня день?',
@@ -114,8 +146,12 @@ result = client.text({
114
146
  })
115
147
  ```
116
148
 
117
- ### ReCaptcha v2
118
- Используйте этот метод для решения ReCaptcha V2 и получения токена для обхода защиты.
149
+ ### reCAPTCHA v2
150
+
151
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_recaptchav2_new)</sup>
152
+
153
+ Используйте этот метод для решения reCAPTCHA v2 и получения токена для обхода защиты.
154
+
119
155
  ```ruby
120
156
  result = client.recaptcha_v2({
121
157
  googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
@@ -124,8 +160,12 @@ result = client.recaptcha_v2({
124
160
  })
125
161
  ```
126
162
 
127
- ### ReCaptcha v3
128
- Этот метод предоставляет решение для ReCaptcha V3 и возвращает токен.
163
+ ### reCAPTCHA v3
164
+
165
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_recaptchav3)</sup>
166
+
167
+ Этот метод предоставляет решение для reCAPTCHA v3 и возвращает токен.
168
+
129
169
  ```ruby
130
170
  result = client.recaptcha_v3({
131
171
  googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
@@ -137,7 +177,11 @@ result = client.recaptcha_v3({
137
177
  ```
138
178
 
139
179
  ### FunCaptcha
180
+
181
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_funcaptcha_new)</sup>
182
+
140
183
  Метод решения FunCaptcha (Arkoselabs). Он возвращает токен.
184
+
141
185
  ```ruby
142
186
  result = client.funcaptcha({
143
187
  publickey: "69A21A01-CC7B-B9C6-0F9A-E7FA06677FFC",
@@ -146,7 +190,11 @@ result = client.funcaptcha({
146
190
  ```
147
191
 
148
192
  ### GeeTest
193
+
194
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_geetest)</sup>
195
+
149
196
  Метод для решения головоломки GeeTest captcha. Он возвращает набор токенов в формате JSON.
197
+
150
198
  ```ruby
151
199
  result = client.geetest({
152
200
  gt: 'f1ab2cdefa3456789012345b6c78d90e',
@@ -156,17 +204,26 @@ result = client.geetest({
156
204
  })
157
205
  ```
158
206
 
159
- ### hCaptcha
160
- Метод решения hCaptcha. Он возвращает токен для обхода капчи.
207
+ ### GeeTest v4
208
+
209
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#geetest-v4)</sup>
210
+
211
+ Используйте этот метод для решения GeeTest v4. Он возвращает ответ в формате JSON.
212
+
161
213
  ```ruby
162
- result = client.hcaptcha({
163
- sitekey: '10000000-ffff-ffff-ffff-000000000001',
214
+ result = client.geetest_v4({
215
+ captcha_id: 'e392e1d7fd421dc63325744d5a2b9c73',
164
216
  pageurl: 'https://www.site.com/page/'
165
217
  })
166
218
  ```
167
219
 
220
+
168
221
  ### KeyCaptcha
222
+
223
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_keycaptcha)</sup>
224
+
169
225
  Метод на основе токенов для решения KeyCaptcha.
226
+
170
227
  ```ruby
171
228
  result = client.keycaptcha({
172
229
  s_s_c_user_id: 10,
@@ -178,7 +235,11 @@ result = client.keycaptcha({
178
235
  ```
179
236
 
180
237
  ### Capy
238
+
239
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_capy)</sup>
240
+
181
241
  Метод основан на использовании токенов для обхода паззла Capy.
242
+
182
243
  ```ruby
183
244
  result = client.capy({
184
245
  sitekey: 'PUZZLE_Abc1dEFghIJKLM2no34P56q7rStu8v',
@@ -188,21 +249,29 @@ result = client.capy({
188
249
  ```
189
250
 
190
251
  ### Grid
252
+
253
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#grid)</sup>
254
+
191
255
  Метод сетки изначально называется методом Old ReCaptcha V2. Этот метод может быть использован для обхода любого типа капчи, где вы можете применить сетку к изображению и необходимо кликнуть по определенным ячейкам сетки. Он возвращает количество выбранных ячеек.
256
+
192
257
  ```ruby
193
258
  result = client.grid({
194
259
  image: 'path/to/captcha.jpg',
195
- rows: 3,
196
- cols: 3,
260
+ recaptcharows: 3,
261
+ recaptchacols: 3,
197
262
  previous_id: 0,
198
263
  lang: 'en',
199
- hint_image: 'path/to/hint.jpg',
200
- hint_text: 'Select all images with an Orange'
264
+ imginstructions: 'path/to/hint.jpg',
265
+ textinstructions: 'Select all images with an Orange'
201
266
  })
202
267
  ```
203
268
 
204
269
  ### Canvas
270
+
271
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#canvas)</sup>
272
+
205
273
  Метод Canvas может быть использован, когда вам необходимо нарисовать линию вокруг объекта на изображении. Он возвращает набор координат точек для рисования многоугольника.
274
+
206
275
  ```ruby
207
276
  result = client.canvas({
208
277
  image: 'path/to/captcha.jpg',
@@ -214,7 +283,11 @@ result = client.canvas({
214
283
  ```
215
284
 
216
285
  ### ClickCaptcha
286
+
287
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#coordinates)</sup>
288
+
217
289
  Метод ClickCaptcha возвращает координаты точек на изображении капчи. Может быть использован, если вам необходимо кликнуть по определенным точкам на изображении.
290
+
218
291
  ```ruby
219
292
  result = client.coordinates({
220
293
  image: 'path/to/captcha.jpg',
@@ -225,7 +298,11 @@ result = client.coordinates({
225
298
  ```
226
299
 
227
300
  ### Rotate
301
+
302
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_rotatecaptcha)</sup>
303
+
228
304
  Этот метод может быть использован для решения капчи, которая просит повернуть объект. В основном используется для обхода FunCaptcha. Он возвращает угол поворота.
305
+
229
306
  ```ruby
230
307
  result = client.rotate({
231
308
  image: 'path/to/captcha.jpg',
@@ -236,8 +313,13 @@ result = client.rotate({
236
313
  })
237
314
  ```
238
315
 
316
+
239
317
  ### Lemin Cropped Captcha
240
- Используйте этот метод для решения задания hCaptcha. Он возвращает JSON-ответ с указанными значениями: ответ (answer) и идентификатор задания (challenge_id).
318
+
319
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#lemin)</sup>
320
+
321
+ Используйте этот метод для решения задания Lemin. Он возвращает JSON-ответ с указанными значениями: ответ (answer) и идентификатор задания (challenge_id).
322
+
241
323
  ```ruby
242
324
  result = client.lemin({
243
325
  captcha_id: 'CROPPED_1abcd2f_a1234b567c890d12ef3a456bc78d901d',
@@ -247,8 +329,13 @@ result = client.lemin({
247
329
  })
248
330
  ```
249
331
 
332
+
250
333
  ### Cloudflare Turnstile
334
+
335
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#turnstile)</sup>
336
+
251
337
  Используйте этот метод для решения задачи Cloudflare Turnstile. Он возвращает JSON с токеном.
338
+
252
339
  ```ruby
253
340
  result = client.turnstile({
254
341
  sitekey: '0x1AAAAAAAAkg0s2VIOD34y5',
@@ -257,7 +344,11 @@ result = client.turnstile({
257
344
  ```
258
345
 
259
346
  ### Amazon WAF
347
+
348
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#amazon-waf)</sup>
349
+
260
350
  Используйте этот метод для решения Captcha Amazon WAF, также известного как AWS WAF Captcha, который является частью интеллектуальной защиты от угроз для Amazon AWS. Он возвращает JSON с токеном.
351
+
261
352
  ```ruby
262
353
  result = client.amazon_waf({
263
354
  sitekey: '0x1AAAAAAAAkg0s2VIOD34y5',
@@ -269,26 +360,27 @@ result = client.amazon_waf({
269
360
  })
270
361
  ```
271
362
 
272
- ### GeeTest v4
273
- Используйте этот метод для решения GeeTest v4. Он возвращает ответ в формате JSON.
274
- ```ruby
275
- result = client.geetest_v4({
276
- captcha_id: 'e392e1d7fd421dc63325744d5a2b9c73',
277
- pageurl: 'https://www.site.com/page/'
278
- })
279
- ```
363
+ ### Распознавание аудио
364
+
365
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#audio)</sup>
366
+
367
+ Этот метод можно использовать как для решения аудио капчи, так и для распознавания любой аудиозаписи.
368
+
369
+ Поддерживаемые языки: "en", "ru", "de", "el", "pt", "fr".
280
370
 
281
- ### Audio
282
- Этот метод можно использовать для решения аудио-капчи.
283
371
  ```ruby
284
372
  result = client.audio({
285
- audio: 'path/to/audio.jpg',
373
+ audio: 'path/to/audio.mp3',
286
374
  lang: "en"
287
375
  })
288
376
  ```
289
377
 
290
378
  ### CyberSiARA
379
+
380
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#cybersiara)</sup>
381
+
291
382
  Метод решения CyberSiARA. Он возвращает токен для обхода капчи.
383
+
292
384
  ```ruby
293
385
  result = client.cyber_siara({
294
386
  pageurl: "https://test.com",
@@ -297,8 +389,14 @@ result = client.cyber_siara({
297
389
  ```
298
390
 
299
391
  ### DataDome
300
- Метод решения DataDome вернет токен для обхода капчи.
301
- Чтобы решить капчу DataDome вы должны обязательно использовать прокси.
392
+
393
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#datadome)</sup>
394
+
395
+ Метод решения DataDome вернет `cookies` для обхода капчи.
396
+
397
+ > [!IMPORTANT]
398
+ > Чтобы решить капчу DataDome вы должны обязательно использовать прокси. Рекомендуется использовать [резидентные прокси].
399
+
302
400
  ```ruby
303
401
  result = client.data_dome({
304
402
  pageurl: "https://test.com",
@@ -308,8 +406,13 @@ result = client.data_dome({
308
406
  })
309
407
  ```
310
408
 
409
+
311
410
  ### MTCaptcha
411
+
412
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#mtcaptcha)</sup>
413
+
312
414
  Метод решения MTCaptcha. Он возвращает токен для обхода капчи.
415
+
313
416
  ```ruby
314
417
  result = client.mt_captcha({
315
418
  pageurl: "https://service.mtcaptcha.com/mtcv1/demo/index.html",
@@ -317,19 +420,68 @@ result = client.mt_captcha({
317
420
  })
318
421
  ```
319
422
 
423
+
320
424
  ### Friendly captcha
425
+
426
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#friendly-captcha)</sup>
427
+
321
428
  Метод решения Friendly captcha. Он возвращает токен для обхода капчи.
429
+
430
+ > [!IMPORTANT]
431
+ > Чтобы успешно использовать полученный токен, виджет капчи не должен быть загружен на странице. Для этого необходимо прервать запрос к `/friendlycaptcha/...module.min.js` на странице. Если виджет капчи уже загружен на странице, существует высокая вероятность, что полученный токен не будет работать.
432
+
322
433
  ```ruby
323
- result = client.friendly_captcha({
434
+ result = client.friendly({
324
435
  pageurl: "https://example.com",
325
436
  sitekey: "2FZFEVS1FZCGQ9"
326
437
  })
327
438
  ```
328
439
 
440
+ ### Cutcaptcha
441
+
442
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#cutcaptcha)</sup>
443
+
444
+ Метод решения Cutcaptcha. Он возвращает токен для обхода капчи.
445
+
446
+ ```ruby
447
+ result = client.cutcaptcha({
448
+ misery_key: "a1488b66da00bf332a1488993a5443c79047e752",
449
+ api_key: "SAb83IIB",
450
+ pageurl: "https://example.cc/foo/bar.html"
451
+ })
452
+ ```
453
+
454
+ ### Tencent
455
+
456
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#tencent)</sup>
457
+
458
+ Основанный на токенах метод автоматизированного решения капчи Tencent.
459
+ ```ruby
460
+ result = client.tencent({
461
+ app_id: "197326679",
462
+ pageurl: "https://mysite.com/page/with/tencent"
463
+ })
464
+ ```
465
+
466
+ ### atbCAPTCHA
467
+
468
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#atb-captcha)</sup>
469
+
470
+ Основанный на токенах метод автоматизированного решения капчи atbCAPTCHA.
471
+ ```ruby
472
+ result = client.atb_captcha({
473
+ app_id: "197326679",
474
+ api_server: "api.atb_captcha.com",
475
+ pageurl: "https://mysite.com/page/with/atb_captcha"
476
+ })
477
+ ```
478
+
479
+
329
480
  ## Другие методы
330
481
 
331
482
  ### send / get_result
332
483
  Эти методы могут быть использованы для ручного отправления капчи и получения результата.
484
+
333
485
  ```ruby
334
486
  # пример для обычной капчи
335
487
  captcha_id = client.send('path/to/captcha.jpg')
@@ -348,22 +500,48 @@ time.sleep(20)
348
500
  # Получить готовый результат
349
501
  result = client.get_result(captcha_id)
350
502
  ```
351
-
352
503
  ### Баланс
504
+
505
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#additional-methods)</sup>
506
+
353
507
  Используйте этот метод, чтобы посмотреть баланс в вашем аккаунте.
508
+
354
509
  ```ruby
355
510
  balance = client.get_balance
356
511
  ```
357
512
 
358
513
  ### Отчет
514
+
515
+ <sup>[Описание метода API.](https://2captcha.com/2captcha-api#complain)</sup>
516
+
359
517
  Используйте этот метод для отправки отчета о правильном или неправильном ответе на капчу.
518
+
360
519
  ```ruby
361
520
  client.report(captcha_id, True) # капча решена правильно
362
521
  client.report(captcha_id, False) # капча решена неправильно
363
522
  ```
364
523
 
365
- ### Обработка ошибок
524
+ ## Прокси
525
+
526
+ Вы можете передать свой прокси-сервер в качестве дополнительного аргумента для методов: recaptcha, funcaptcha, geetest, geetest v4, keycaptcha, capy puzzle, lemin, turnstile, amazon waf, Cutcaptcha, Friendly captcha, MTCaptcha, DataDome, CyberSiARA и других. Передынный Прокси-сервер будет перенаправлен в API и будет использован для загрузки капчи.
527
+
528
+ У нас есть свои собственные прокси-серверы, которые мы можем вам предложить. [Купить резидентские прокси] чтобы избежать ограничений и блокировок. [Быстрый старт].
529
+
530
+ Пример решения reCAPTCHA V2 с использованием прокси-сервера:
531
+
532
+ ```ruby
533
+ result = client.recaptcha_v2({
534
+ googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
535
+ pageurl: 'https://mysite.com/page/with/recaptcha_v2',
536
+ invisible: 1,
537
+ proxytype: "https",
538
+ proxy: "proxyuser:strongPassword@123.123.123.123:3128"
539
+ })
540
+ ```
541
+
542
+ ## Обработка ошибок
366
543
  В случае ошибки при решении капчи генерируется исключение. Важно правильно обрабатывать такие случаи. Мы рекомендуем использовать конструкцию `begin rescue` для обработки.
544
+
367
545
  ```ruby
368
546
  begin
369
547
  result = client.text('Если завтра суббота, то какой сегодня день?')
@@ -381,3 +559,33 @@ client.report(captcha_id, False) # капча решена неправильн
381
559
  puts(e)
382
560
  end
383
561
  ```
562
+
563
+ ## Примеры
564
+
565
+ Примеры решения поддерживаемых типов капчи находятся в директории [examples].
566
+
567
+ ## Свяжитесь с нами
568
+
569
+ <a href="mailto:support@2captcha.com"><img src="https://github.com/user-attachments/assets/539df209-7c85-4fa5-84b4-fc22ab93fac7" width="80" height="30"></a>
570
+ <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>
571
+
572
+ <h2 id='join-the-team'>Присоединяйтесь к команде 👪</h2>
573
+
574
+ Есть много способов внести свой вклад, и разработка - лишь один из них! Найдите свою следующую работу. Открытые вакансии: AI experts, scrapers, developers, technical support, и многое другое! 😍
575
+
576
+ <a href="mailto:job@2captcha.com"><img src="https://github.com/user-attachments/assets/36d23ef5-7866-4841-8e17-261cc8a4e033" width="80" height="30"></a>
577
+
578
+ ## Лицензия
579
+
580
+ Код в этом репозитории лицензируется по лицензии MIT. Более подробную информацию см. в файле [LICENSE](./LICENSE).
581
+
582
+ ### Графика и товарные знаки
583
+
584
+ Графика и товарные знаки, включенные в этот репозиторий, не подпадают под действие лицензии MIT. За разрешениями на использование этих материалов обращайтесь в <a href="mailto:support@2captcha.com">службу поддержки</a>.
585
+
586
+ <!-- Shared links -->
587
+ [2Captcha]: https://2captcha.com/
588
+ [Купить резидентские прокси]: https://2captcha.com/proxy/residential-proxies
589
+ [Быстрый старт]: https://2captcha.com/proxy?openAddTrafficModal=true
590
+ [резидентные прокси]: https://2captcha.com/proxy/residential-proxies
591
+ [examples]: ./examples/
data/api_2captcha.gemspec CHANGED
@@ -18,6 +18,9 @@ Gem::Specification.new do |spec|
18
18
  spec.metadata["source_code_uri"] = "https://github.com/2captcha/2captcha-ruby"
19
19
  spec.metadata["changelog_uri"] = "https://github.com/2captcha/2captcha-ruby/releases"
20
20
  spec.metadata["github_repo"] = "ssh://github.com/2captcha/2captcha-ruby"
21
+ spec.metadata["bug_tracker_uri"] = "https://github.com/2captcha/2captcha-ruby/issues"
22
+ spec.metadata["keywords"] = "2captcha, captcha solver, captcha bypass, Ruby, automation, CAPTCHA API, CAPTCHA recognition, anti-captcha, reCAPTCHA, OCR, image recognition, human verification, bot protection, recaptcha"
23
+
21
24
 
22
25
  # Specify which files should be added to the gem when it is released.
23
26
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -0,0 +1,11 @@
1
+ require 'api_2captcha'
2
+
3
+ client = Api2Captcha.new("YOUR_API_KEY")
4
+
5
+ result = client.atb_captcha({
6
+ app_id: "197326679",
7
+ api_server: "api.atb_captcha.com",
8
+ pageurl: "https://mysite.com/page/with/atb_captcha"
9
+ })
10
+
11
+ puts "Result: #{result.inspect}"
@@ -0,0 +1,10 @@
1
+ require 'api_2captcha'
2
+
3
+ client = Api2Captcha.new("YOUR_API_KEY")
4
+
5
+ result = client.audio({
6
+ audio: './media/example.mp3',
7
+ lang: "en"
8
+ })
9
+
10
+ puts "Result: #{result.inspect}"
@@ -0,0 +1,14 @@
1
+ require 'api_2captcha'
2
+
3
+ client = Api2Captcha.new("YOUR_API_KEY")
4
+
5
+ result = client.grid({
6
+ image: './media/recaptchaGrid4x4.jpg',
7
+ rows: 4,
8
+ cols: 4,
9
+ lang: 'en',
10
+ hint_image: './media/recaptchaGridImginstructions4x4.jpg',
11
+ # hint_text: 'Select all squares with stairs'
12
+ })
13
+
14
+ puts "Result: #{result.inspect}"
Binary file