Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авторизация на сайте. 
:(
    Опции темы
VingradFan
  Дата 8.12.2011, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 477
Регистрация: 30.1.2006
Где: Москва

Репутация: нет
Всего: 3



Добрый день. Прошу прощения, если вопрос совсем глупый, киньте в меня хорошей, годной ссылкой для абсолютных чайников. Спасибо!

Поставлена задача написать программу для автоматической рассылки сообщений в соц. сети вконтакте. Как я понимаю суть задачи, мой пхп скрипт должен определенному скрипту на сервере контакта передать определенные POST данные. Для этого мой скрипт должен предварительно пройти авторизацию на сайте. Так?

Собственно остановился на процессе авторизации. Прочитал вот это, скачал HTTP analyzeer, посмотрел, что-куда отправляется, написал скрипт.

Анализатор дал мне следующую информацию:
===HEADERS===
Код

Content-Length:159
Content-Type:application/x-www-form-urlencoded
Accept-Encoding:gzip, deflate
Referer:http://vkontakte.ru/al_index.php?act=auth_frame
Connection:keep-alive
Host:login.vk.com
User-Agent:Mozilla/5.0 (Windows NT 5.1; rv:8.0.1) Gecko/20100101 Firefox/8.0.1
(Request-Line):POST /?act=login HTTP/1.1
Cookie:remixlang=0; remixchk=5; remixsid=ddc698647b2cab3e4cb01832c70356565ea411d62e126fbe9cadb3af70196013
Accept-Language:ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:windows-1251,utf-8;q=0.7,*;q=0.7



===POST DATA===
Код

act=login
q=1
al_frame=1
expire=
captcha_sid=
captcha_key=
from_host=vkontakte.ru
ip_h=9408d78c019b87455b
email=*
pass=*




Код

<?php
    $socketOpen = fsockopen    (    'login.vk.com',80,$errorNumber,$errorMessage,5);
    if ( $socketOpen ) {
        $header = "POST /?act=login HTTP/1.1\n";
        $header .= "Host: login.vk.com\n";
        $header .= "Content-Length: 159\n";
        $header .= "Content-Type: application/x-www-form-urlencoded\n";
        $header .= "Accept-Encoding: gzip, deflate\n";
        $header .= "Referer: http://vkontakte.ru/al_index.php?act=auth_frame\n";
        $header .= "Connection: keep-alive\n";
        $header .= "User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:8.0.1) Gecko/20100101 Firefox/8.0.1\n";
        $header .= "Cookie: remixlang=0; remixchk=5; remixsid=ddc698647b2cab3e4cb02341832c7035ea342411d62e126fbe9cadb3af70196013\n";
        $header .= "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\n";
        $header .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\n";
        $header .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\n\n";
        
        $header .= "act=login&";
        $header .= "q=1&";
        $header .= "al_frame=1&";
        $header .= "expire=&";
        $header .= "captcha_sid=&";
        $header .= "captcha_key=&";
        $header .= "from_host=vkontakte.ru&";
        $header .= "ip_h=9408d78c034419b87455b&";
        $header .= "email=моя_почта&";
        $header .= "pass=мой_пароль";
    
        fputs ( $socketOpen , $header );

        fclose ( $socketOpen );        
    }
?>


Скрипт выполняется без ошибок, но я не могу понять, как посмотреть результат его работы, произошла ли авторизация или нет. Когда дописываю
Код

        while( !feof ( $socketOpen ) ) {
            echo fgets ( $socketOpen );
        }

Программа останавливается по таймауту.
Подскпажите, пожалуйста, как понять, произошла ли авторизация. Спасибо!

Это сообщение отредактировал(а) VingradFan - 8.12.2011, 15:01


--------------------
Когда-нибудь я стану богатым и куплю себе столько Ролтонов, сколько захочу...
PM MAIL WWW ICQ   Вверх
$дмитрий
Дата 8.12.2011, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: нет
Всего: 45



Я бы по другому авторизовывал http://habrahabr.ru/blogs/social_networks/117211/
PM MAIL   Вверх
VingradFan
Дата 8.12.2011, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 477
Регистрация: 30.1.2006
Где: Москва

Репутация: нет
Всего: 3



Спасибо за ссылку. Но хотелось бы научиться универсальным низкоуровневым методам, а не использовать частные "костыли".
Спасибо!


--------------------
Когда-нибудь я стану богатым и куплю себе столько Ролтонов, сколько захочу...
PM MAIL WWW ICQ   Вверх
Nigel
Дата 8.12.2011, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 20.11.2007

Репутация: нет
Всего: 19



Откажитесь от задачи. В дальнейшем столкнетесь с проблемой обхода капчи, контакт выставляет ее после отсылки n сообщений. Потом столкнетесь, что нельзя открывать n соединений в секунду.
PM MAIL   Вверх
VingradFan
Дата 8.12.2011, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 477
Регистрация: 30.1.2006
Где: Москва

Репутация: нет
Всего: 3



Цитата(Nigel @ 8.12.2011,  19:15)
Откажитесь от задачи. В дальнейшем столкнетесь с проблемой обхода капчи, контакт выставляет ее после отсылки n сообщений. Потом столкнетесь, что нельзя открывать n соединений в секунду.

Задача - учебная. Для знакомства с сокетами. Тем более, что при постинге у себя на стене никакой капчи нет.


--------------------
Когда-нибудь я стану богатым и куплю себе столько Ролтонов, сколько захочу...
PM MAIL WWW ICQ   Вверх
$дмитрий
Дата 8.12.2011, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: нет
Всего: 45



Цитата

Программа останавливается по таймауту

Попробуй сменить версию протокола на HTTP/1.0

Цитата

Задача - учебная

И первый урок. Так писать нерационально
Код

        $header .= "Host: login.vk.com\n";
        $header .= "Content-Length: 159\n";
        $header .= "Content-Type: application/x-www-form-urlencoded\n";
        $header .= "Accept-Encoding: gzip, deflate\n";
        $header .= "Referer: http://vkontakte.ru/al_index.php?act=auth_frame\n";
        $header .= "Connection: keep-alive\n";


Цитата

Для знакомства с сокетами

В первый раз, обычно, пробуют получить контент с какого-либо сайта


 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0598 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.