Решил запостить свой класс сюда, т.к. он будет постоянно обновляться. Выкладываю часть функций. Что умеет: - Работа через прокси - Добавить друга ( или одобрить заявку на добавление ) (-) - Удалить пользователя из друзей (-) - Установить статус (-) - Писать на стене (+) - Проверять пользователя на онлайн (даже если страница закрыта) (-) - Редактирование заметки по её ID (-) - Редактирование заметки по её названию (-) - Писать личные сообщения пользователям (-) - Загрузка аватара (-) - Смена NickName (-) - Получение статуса пользователя (-) - Получение списка ID, у которых ты в закладках (-) (-) - Не выводит анкету в онлайн (+) - Выводит в онлайн Писал с нуля, все функции свои. Функции возращают TRUE или FALSE или содержимое. Использование: Примеры использования приведены в классе Сам класс: dump.ru slil.ru ifolder.ru
а в чем трабла? я щас попробую набросать скрипт для смены. если получиться то тебе скину, а ты там попробуеш его интегрировать в класс
PHP: <?php function curl($url,$post) { $cfile = 'cookies.txt'; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_COOKIEJAR, $cfile); curl_setopt($ch, CURLOPT_COOKIEFILE, $cfile); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_POST, 1); $result = curl_exec($ch); curl_close($ch); return $result; } $email = 'ssaf'; $pass = 'asddsa'; $nik = 'ziaga'; $result = curl("http://vkontakte.ru/login.php","email=$email&pass=$pass"); $result = curl('http://vkontakte.ru/settings.php',''); preg_match_all("#hash:'(.*)'#iU",$result,$regs); $hash = $regs[1][0]; $result = curl('http://vkontakte.ru/settings.php','hash='.$hash.'&act=change_nickname&subm=1&nickname='.$nik); echo $result; ?> upd. неуспел=((
[22.03] - Добавил: - получение последнего статуса пользователя (не выводит в онлайн) - получение списка пользователей, у которых ты в закладках ( пример возращаемого массива указан в классе )
Deathdreams По большей части - обертка для юзер апи, но вы, видимо, собираетесь поддерживать этот клас, поэтому пусть живет. Что хотелось бы видеть: 1) Приведите код к общечеловеческому стандарту для форматирования кода, отступы и дополнительные строки в самых неожиданных местах смотрятся "не тру" 2) Проверки возвращаемого кода делать в отдельном методе 3) Следует из 2 - сразу можем получить обработчик ошибок 4) Работа с анти каптчей 5) На кой черт - iconv("CP1251", "UTF-8", $text)? Тем более без проверок - у многих будет получаться двойное кодирование текста в УТФ. Пора уже сохранять файлы сразу в UTF 6) Выделите вычисления хеша для стены в отдельный метод - потом проще будет 7) Работу с проксями хотелось бы видеть 8) Работу не только с курлом но и с сокетами и выбор - работа с тем, что есть в наличии, или принудительный выбор пользователем 9) Ну и заливайте все таки класс на файлообменники, не все догадаются копировать код через цитирование, а форум свои пробелы в код вставляет
1) код расчитан на личное пользование, могу вообще убрать форматирование. 2) возращаемые ответы не всегда одинаковы (не все запросы идут через userapi) 3) мне кажется, true-false достаточно. или нужен дебаг ? 4) большая часть функций - юзерапи, где капча отсутствует. или вы имеете ввиду антикапча при авторизации ? 5) я задумался над этим, решил не использовать mb_detect_encoding (нужна отдельная библиотека) если дадите регулярку для определения UTF - буду благодарен. 6) сделаю 7) сделаю 8) не сделаю, т.к. много времени уйдёт , например, на аплоад аватары. 9) сделаю Спасибо за замечания
1) Если на личное пользование - то не кажется ли вам, что достаточно было оставить этот класс в прикрепленной теме и не пытаться потешить свое ЧСВ отдельным топиком? Да и все равно пригодится красиво писать код, и читаемо и удобно 2) Да, я имел ввиду юзерапи 3) Нужен, или вы всегда уверены по какой причине возвращается false? 4) Капча на юзерапи заявлена и возможна - http://userapi.com/?act=doc#captcha 5) Панацеи не будет, лучше добавьте поле is_utf внутри класса, и от него пляшите 8) Эээ, с чего бы?
Всем здрасти! Делаю загрузку видео на PHP. Взял за основу Умный аватар на PHP для ВКонтакте v1.1 . Но выдает сообщение: "Security Breach2". Подскажите, пожалуйста, в чем я ошибаюсь)) PHP: include 'config.php'; $email = iconv('utf-8','cp1251',$email); $pass = iconv('utf-8','cp1251',$pass); $sid = vk_auth($email, $pass); $cookies = 'remixsid='.$sid; $vk_video = vk_video($cookies,'path_to_file/1.flv'); function curl($url, $cookie = false, $post = false, $header = false, $follow_location = false) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FAILONERROR, true); curl_setopt($ch, CURLOPT_HEADER, $header); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, $follow_location); if ($cookie) { curl_setopt ($ch, CURLOPT_COOKIE, $cookie); } if ($post) { curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); } $response = curl_exec ($ch); curl_close($ch); return $response; } function vk_auth($email, $pass) { $response = curl('http://vkontakte.ru/login.php',false,array('email'=>$email,'pass'=>$pass),true); preg_match('|Set-Cookie: remixsid=(.*); exp|', $response, $cm); return $cm[1]; } function vk_video ($cookies, $filename) { $upl_video = curl('http://vkontakte.ru/video.php?act=upload',$cookies); $reg ="#http://cs[0-9]{1,6}\.vkontakte\.ru/upload_video\.php\?act=add_video#"; preg_match($reg, $upl_video,$matches); $link = $matches[0]; if (strlen($link)>0) { $output = curl($link,$cookies,array('video_file'=>'@'.$filename),true); $reg = "#upload_video.*?callback#"; preg_match($reg, $output,$matches); $output = curl('http://vkontakte.ru/'.$matches[0],$cookies); } else { echo "Error!\n"; } }
ТС, добавил тему в закладки в надежде на продолжение... ставлю + PS: класс не скачивал, так как пока ничего интересного не реализовано
*археология* Я тут гуглил класс для вк. Так вот - http://code.google.com/p/vkontakte-php-class/ функций больше, чем у тс, и всё(хотя, тестил только пару функций) отлично работает. Советую.