На просторах интернетов нашел скрипт авторизации в ОД PHP: $user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.13) ' . 'Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729)'; $login = 'логин'; $password = 'пароль'; $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt'); curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt'); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_URL, 'http://www.odnoklassniki.ru/dk?cmd=AnonymLogin&st.cmd=anonymLogin&tkn=941'); $post = array( 'st.redirect' => '', 'st.posted' => 'set', 'st.email' => $login, 'st.password' => $password, 'st.screenSize' => '', 'st.browserSize' => '', 'st.flashVer' => '' ); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post)); $answer = curl_exec($ch); echo $answer; curl_close($ch); По аналогии со скриптом вечного онлайна для Вк - поставил "на вечный онлайн" в кроне 10 экземпляров, каждые 9 минут вход. Всё хорошо, при авторизации на хостинге создается файл cookies.txt, я даже смутно догадываюсь для чего он. Но вот незадача - анкеты провисели в онлайне около 12 часов и онлайн "слетел". В дальнейшем уже чистил - убирал скрипты, пробовал поставить на выполнение только один экземпляр - всё равно, 20-30 минут держит в онлайне и всё слетает. Разносил каждый экземпляр в отдельную папку (чтоб куки сохранялись для каждого отдельно) - эффекта ноль. Собственно вопрос по реализации - есть мысли в чём может быть дело ? почему слетает авторизация и в дальнейшем не авторизовывается ? где я лоханулся ?
Вопрос банальный, а зачем вы авторизовуетесь сотни раз если можно просто единожды авторизоваться и потом просто посещать свой профайл в ОД с сохраненными куками и быть в онлайне без каких либо проблем. Естественно скрипт падает потому что ОД видит многочисленные авторизации и просто выдает капчу либо другим способом борется. ЗЫ Программирование очень сильно завязано на логике мышления, судя по разделу и тупейшим вопросам логика напрочь отсутствует у данного контингента. Эти мега скрипты в 5 строчек полу работающие уже подкумарили, не копипастите интернетные так называемые "скрипты", изучайте язык и пишите сами продумывая логику работы как сервиса так и скрипта.
PHP: $user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.13) ' .'Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729)'; $login = 'логин'; $password = 'пароль'; $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt'); curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt'); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_URL, 'http://www.odnoklassniki.ru/dk?cmd=AnonymLogin& st.cmd=anonymLogin&tkn=941'); $post = array( 'st.redirect' => '', 'st.posted' => 'set', 'st.email' => $login, 'st.password' => $password, 'st.screenSize' => '', 'st.browserSize' => '', 'st.flashVer' => '' ); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post)); do { if(isset($_SESSION)){ /*Пока открыта сессия (можно пока кукисы не за экспарились и существуют)*/ } else{ /*Обычная парольная аутентификация с сохранением кукисов*/ } $answer = curl_exec($ch); // в ответ получили главную страницу echo $answer; curl_close($ch); sleep(7200); //delay между попытками }while(1); // бесконечный цикл В и вот уже исчезает необходимость в крон запихивать по 10 копий (даже если ты используешь 10 учетных записей на сайте, то имеет имеет смысл в цикле (который добавишь) только менять (перебирать) credentials из массива; место сохранение cookies...)
b3 я к сожалению очень далёк от программирования и всего такого. даже html страницы делаю методом тыка, про php и curl вообще молчу. Поэтому и вопросы такие тупые Знаю, что нужно обратиться в раздел "Предлагаю работу" и заказать написание скрипта за бабки - но не позволяет религия (хоть в роду евреев не было, но судя по мироощущению я точно еврей ) мерси, не подумал об этом. почитал немного php.su и покурил гугл, взял на вооружение отеческие указания b3 и получилось вот такое: PHP: <? $user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.13) ' . 'Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729)'; $ch = curl_init('http://www.odnoklassniki.ru/profile/561251313274'); curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/17.txt'); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_exec($ch); curl_close($ch); ?> * насколько я понимаю , то что у меня получилось - это get запрос с передачей предварительно сохранённых кукис. Был весьма удивлён, когда оно у меня заработала с первого раза - счас поставил, вроде как пока что работает - не знаю сколько живут куки поглядим , да и вообще слабо понимаю КАК это работает. походу дела я 30 лет жизни учил совсем не то, что нужно SpRyt спасибо огромное, твоя карма стала светлей и чище, опробую твой тоже. это очень умно, я бы даже сказал гениально еще одна спасибка за идею даже мысли об этом не было, буду двигаться дальше, сенкс!
время жизни cookie в одноклассниках быть может, кому-то пригодится. итак, прошёл примерно месяц - и анкеты выпали из онлайна из-за того, что вышел срок жизни кукис, они устанавливаются одноклассниками на месяц. решил сильно не наглеть для начала, и увеличить срок жизни кук примерно на 3 месяца. Сначала терзал гугл запросами "edit Cookies" и "модификация даты expire для cookie" , однако не осилил поисковую выдачу и нашёл альтернативное решение. Т.к. время жизни cookie задается в секундах, начиная с 1 января 1970 года, то просто добавил примерно 7-8 миллионов секунд (3 месяца) в значение куки. Было: Code: odnoklassniki.ru TRUE / FALSE 1422003085 AUTHCODE YABzEpwxHJTmHXwj8pKEYhnafOMyeA Стало: Code: odnoklassniki.ru TRUE / FALSE 142[COLOR=Sienna][SIZE=4]8[/SIZE][/COLOR]003085 AUTHCODE YABzEpwxHJTmHXwj8pKEYhnafOMyeA быть может со стороны одноклассников тоже идёт встречный контроль, и через месяц мои куки перестанут принимать - в таком случае отпишусь. Пока что авторизация с помощью новосозданных и модифицированных cookie прошла успешно, аккаунт висит в онлайне. Старые, месячной давности куки таким образом модифицировать не удалось. /ОД недавно меняли что-то в API или авторизации, быть может поэтому старые куки не прошли процедуру генной модификации/
Было бы странно, если бы старые куки вдруг полноценно заработали после модификаций и предшествующего им принудительного разлогина. А если бы такое произошло - это уже полноценная бага Session Fixation