Captcha needed как исправить

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

TL;DR Лимиты на кол-во запросов с сервера не превышали, но ошибка с капчей появляется постоянно. Кто-нибудь знает как с этим бороться?

Добрый день хабравчане!

В нашем приложении есть, допустим, около 1000 пользователей, у каждого из которых есть свой offline токен для работы с VK API. Приложение выполняется по крону, используя для запросов разные токены пользователей.

Как сказано в FAQ, действуют ограничения на кол-во запросов с сервера:

  • 3 запроса в секунду от каждого уникального пользователя
  • если приложение установило меньше 10 000 человек, то можно совершать 5 запросов в секунду с одного сервера

Данные ограничения нами выполняются даже с запасом: 3 запроса в секунду с разными пользователями. Приложение работает на выделенном IP, других запросов с данного IP не делается.

Суть проблемы — после неопределённого количества запросов начинает постоянно вываливаться ошибка:

Code: 14; Message: Captcha needed

Естественно, если ввести капчу как указано здесь, то несколько запросов пройдет без капчи, а затем ошибка повторится вновь. Т.к. наше приложение работает в offline по крону, то такое положение дел нас совершенно не устраивает.

Пробовали обращаться в ТП:
Обращение 1

Александр Скутин

В последнее время постоянно вылетает ошибка Captcha needed при обращении к API. Как это можно обойти? Какие есть реальные ограничения, и относительно чего они действуют (токена или ip)? Спасибо.

Агент поддержки #519

Здравствуйте, Александр!

Попробуйте, пожалуйста, для начала воспользоваться методом обработки, указанным на странице документации vk.com/dev/auth_direct.

Всегда с Вами,

Команда поддержки ВКонтакте.

Обращение 2

Александр Скутин

Постоянно возникает ошибка Captcha needed, какие действуют реальные ограничения на запросы?

Агент поддержки #720

Здравствуйте, Александр!

Каких-то конкретных ограничений мы назвать не можем. Такая ошибка начинает возвращаться, когда действие происходит слишком часто — см. vk.com/dev/captcha_error

С Уважением,

Команда поддержки ВКонтакте.

Внимание, вопрос…

  1. Зачем ТП рекомендует auth_direct, если в документации черным по белому написано, что от капчи это не спасает? Кто-нибудь пробовал данный способ, может другие ограничения на запросы? В таком случае, чтобы их не превысить, где цифры?
  2. Может кто уже боролся с такой проблемой и знает пуленепробиваемый способ выполнять запросы к API без опасности быть заблокированным?
  3. Если ничего не поможет… Кто-нибудь парсил капчу VK? Базами образов или даже алгоритмами поделитесь? :)

Буду благодарен за любую частичку ценной информации…

P.S. Тех. поддержка VK отвечает сутками и совершенно не информативно. Печаль, беда, бардак в документации…

UPD1:
Появилась информация, что появление капчи зависит от пользователей вашего приложения. Насколько это близко к истине — неизвестно.

Are there any vkontakte api developers? I need your help!
I have an Yii application, running by cron (every 10 minutes) on dedicated IP.
It makes about 2.8 queries per second, but the «Captcha needed» error is still occurs…
Here is some info about error (russian) http://vk.com/pages?oid=-1&p=%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0%3A_Captcha_is_needed

Is there any way to make periodic queries to VK.API without risk of error?

Thanks for any help!

asked Jun 26, 2013 at 6:53

Alex Skutin's user avatar

2

Unfortunately, there is an anti-spam protection for some API methods in VK. You can send a lot of queries for getting information, etc., but methods like wall.post or message.send require to enter the captcha text to not allow spam-bots use VK API.

The only solution that I see is the usage of some captcha decoder services. Anyway, sending posts via cron is not a good idea at all.

answered Jun 28, 2013 at 11:47

ozahorulia's user avatar

ozahoruliaozahorulia

9,6567 gold badges46 silver badges72 bronze badges

Are there any vkontakte api developers? I need your help!
I have an Yii application, running by cron (every 10 minutes) on dedicated IP.
It makes about 2.8 queries per second, but the «Captcha needed» error is still occurs…
Here is some info about error (russian) http://vk.com/pages?oid=-1&p=%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0%3A_Captcha_is_needed

Is there any way to make periodic queries to VK.API without risk of error?

Thanks for any help!

asked Jun 26, 2013 at 6:53

Alex Skutin's user avatar

2

Unfortunately, there is an anti-spam protection for some API methods in VK. You can send a lot of queries for getting information, etc., but methods like wall.post or message.send require to enter the captcha text to not allow spam-bots use VK API.

The only solution that I see is the usage of some captcha decoder services. Anyway, sending posts via cron is not a good idea at all.

answered Jun 28, 2013 at 11:47

ozahorulia's user avatar

ozahoruliaozahorulia

9,6567 gold badges46 silver badges72 bronze badges

Необходимо отсылать пользователю личное сообщение ВКонтакте посредством PHP-скрипта. Согласно документации, метод messages.send доступен только Standalone-приложениям. Однако на выходе (при запуске скрипта с токеном отправителя) имеем проверку Captcha .

Насколько я понимаю, есть привязка к региону или IP, так как токен отправителя принадлежит одной стране (одному IP), а скрипт с вышеупомянутым токеном запускается на сервере другой страны. Есть ли возможность зарегистрировать токен непосредственно на сервере, или есть другой механизм обхода?

Артём Ионаш's user avatar

Артём Ионаш

1,7221 золотой знак20 серебряных знаков40 бронзовых знаков

задан 11 мар 2016 в 12:44

Mike's user avatar

3

Тоже столкнулся с такой проблемой. VK API не пускает выполнять запросы.
У меня хостинг (сервер) в Нидерландах.

Решил проблему так:

Установил расширение хрома VPN-HOLA, открыл VK в браузере, в расширении выбрал Нидерланды. VK предупредил, что я из подозрительного места, я все подтвердил, авторизовался.

После этого работа из скрипта с VK API стала обрабатываться нормально.

Vladimir Glinskikh's user avatar

ответ дан 15 дек 2016 в 10:58

user2918111's user avatar

Искал решение на эту проблему долгое время , случайно она решилась после того как сайт на котором работал скрипт с VK API хостер перенёс с сервера Украины на сервер в Германию.
Скрипт перестал работать и стал запрашивать при первом же обращении к VK каптчу.
Но пока сайт стоял на сервере в Украине всё работало нормально,установил этот скрипт на другой сайт который находился на сервере в Украине и вуаля — всё работает.
Спрашивается почему? Да потому ,что токен получал пользователь у которого IP был Украинский и скрипт работал с Украинского IP.
Что я сделал — получил токен используя IP Германии.
Зашёл через Германский прокси сервер в ВК,получил токен,ввёл в настройках скрипта новый токен и всё заработало.
Отсюда делаем выводы ,что токен нужно получать с той же страны где работает скрипт или программа.
Если не совпадают то срабатывает система защиты ВК и просят ввести каптчу.

ответ дан 19 ноя 2016 в 16:29

Zafon's user avatar

Перейти к контенту

Яндекс.Практикум

У одно из сайтов есть своя группа в VK, есть бот, который копирует картинки с различных каналов твиттера и заливает их в группу VK.

Как то раз пришлось изменить пароль на аккаунт VK и после этого бот перестал заливать что либо с воплями Captcha needed. Подумал может смены пароля нужно заново сгенерировать Access token, но нет, это не помогло.

Немного изучив API VK, попробовал ввести капчу, а именно передать запрос с капчей. Для этого понадобится две вещи:

  1. captcha_sid – Это ID капчи
  2. captcha_img – Ссылка на картинку капчи

Все эти данные есть при запросе к API vk, а именно при попытке загрузить картинку, API vk возвращала Captcha needed и данные капчи (captcha_sid, captcha_img и need_validation)

Для работы с API VK я использую Vkontakte PHP SDK. В код класса добавил следующее:

        $response = $this->api('photos.getWallUploadServer', [
            'group_id' => $publicID,
            'captcha_sid' => 1231231231231,
            'captcha_key' => 'vdnmhzq'
        ]);

Где в переменную captcha_sid вставляем ID из не удачной попытки подключения к API VK, а в переменную captcha_key вводим код с картинки.

Все, пробуем залить картинки на стену:

=> Process Twit ID: 863710483387xxxxxx
=> No images. Skip Twit 
=> Process Twit ID: 863617837721xxxxxx
=> Parse img: 1
File C_wl8w0XgAAM4kS.png downloaded
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3962  100   575  100  3387    663   3911 --:--:-- --:--:-- --:--:--  3911

=> Process Twit ID: 863607676240xxxxx
=> Parse img: 1
File C_wQ1weVYAA3o8l.jpg downloaded
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 24204  100   577  100 23627    780  31948 --:--:-- --:--:-- --:--:-- 31971

=> Process Twit ID: 86359804103xxxxxxx
=> No images. Skip Twit 
=> Process Twit ID: 86358528341xxxxxxx
=> Parse img: 1
File C_wCjvSXgAApb1R.jpg downloaded
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  9679  100   577  100  9102    745  11754 --:--:-- --:--:-- --:--:-- 11744

bkmzhack

0 / 0 / 0

Регистрация: 31.03.2014

Сообщений: 4

1

VK API

24.07.2015, 17:00. Показов 2395. Ответов 2

Метки нет (Все метки)


Код реализует отправку сообщения, введенного в форму на сайте.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
 
$token = "ТОКЕН";  
$user_id = $_POST['id'];//id        
$texed2 = $_POST['text'];//текст 
$text2 = urlencode($texed2);
echo curl('https://api.vk.com/method/messages.send?domain='.$user_id.'&message='.$text2.'&access_token='.$token); 
 
function curl($url){
    $ch = curl_init($url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}
 
?>

Но ответ дает ошибку 14 ( капчу)

PHP
1
{"error":{"error_code":14,"error_msg":"Captcha needed","request_params":[{"key":"oauth","value":"1"},{"key":"method","value":"messages.send"},{"key":"domain","value":"id"},{"key":"message","value":"asdasdasd"}],"captcha_sid":"134280836187","captcha_img":"http://api.vk.com/captcha.php?sid=134280836187","need_validation":1}}

Как обработать этот ответ, чтобы вывести пользователю форму для ввода этой капчи и ее саму?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Понравилась статья? Поделить с друзьями:
  • Captcha error timeout or duplicate
  • Captcha error please try again перевод
  • Captcha error please try again call of duty
  • Capsule workspace internal error
  • Caps lock работает наоборот как исправить