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
С Уважением,
Команда поддержки ВКонтакте.
Внимание, вопрос…
- Зачем ТП рекомендует auth_direct, если в документации черным по белому написано, что от капчи это не спасает? Кто-нибудь пробовал данный способ, может другие ограничения на запросы? В таком случае, чтобы их не превысить, где цифры?
- Может кто уже боролся с такой проблемой и знает пуленепробиваемый способ выполнять запросы к API без опасности быть заблокированным?
- Если ничего не поможет… Кто-нибудь парсил капчу 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
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
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
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
ozahoruliaozahorulia
9,6567 gold badges46 silver badges72 bronze badges
Необходимо отсылать пользователю личное сообщение ВКонтакте посредством PHP-скрипта. Согласно документации, метод messages.send
доступен только Standalone-приложениям. Однако на выходе (при запуске скрипта с токеном отправителя) имеем проверку Captcha .
Насколько я понимаю, есть привязка к региону или IP, так как токен отправителя принадлежит одной стране (одному IP), а скрипт с вышеупомянутым токеном запускается на сервере другой страны. Есть ли возможность зарегистрировать токен непосредственно на сервере, или есть другой механизм обхода?
Артём Ионаш
1,7221 золотой знак20 серебряных знаков40 бронзовых знаков
задан 11 мар 2016 в 12:44
3
Тоже столкнулся с такой проблемой. VK API не пускает выполнять запросы.
У меня хостинг (сервер) в Нидерландах.
Решил проблему так:
Установил расширение хрома VPN-HOLA, открыл VK в браузере, в расширении выбрал Нидерланды. VK предупредил, что я из подозрительного места, я все подтвердил, авторизовался.
После этого работа из скрипта с VK API стала обрабатываться нормально.
ответ дан 15 дек 2016 в 10:58
Искал решение на эту проблему долгое время , случайно она решилась после того как сайт на котором работал скрипт с VK API хостер перенёс с сервера Украины на сервер в Германию.
Скрипт перестал работать и стал запрашивать при первом же обращении к VK каптчу.
Но пока сайт стоял на сервере в Украине всё работало нормально,установил этот скрипт на другой сайт который находился на сервере в Украине и вуаля — всё работает.
Спрашивается почему? Да потому ,что токен получал пользователь у которого IP был Украинский и скрипт работал с Украинского IP.
Что я сделал — получил токен используя IP Германии.
Зашёл через Германский прокси сервер в ВК,получил токен,ввёл в настройках скрипта новый токен и всё заработало.
Отсюда делаем выводы ,что токен нужно получать с той же страны где работает скрипт или программа.
Если не совпадают то срабатывает система защиты ВК и просят ввести каптчу.
ответ дан 19 ноя 2016 в 16:29
Перейти к контенту
У одно из сайтов есть своя группа в VK, есть бот, который копирует картинки с различных каналов твиттера и заливает их в группу VK.
Как то раз пришлось изменить пароль на аккаунт VK и после этого бот перестал заливать что либо с воплями Captcha needed. Подумал может смены пароля нужно заново сгенерировать Access token, но нет, это не помогло.
Немного изучив API VK, попробовал ввести капчу, а именно передать запрос с капчей. Для этого понадобится две вещи:
- captcha_sid – Это ID капчи
- 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 Метки нет (Все метки)
Код реализует отправку сообщения, введенного в форму на сайте.
Но ответ дает ошибку 14 ( капчу)
Как обработать этот ответ, чтобы вывести пользователю форму для ввода этой капчи и ее саму?
__________________
0 |