У одно из сайтов есть своя группа в 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
Благодарю