POST запрос на mail.php ВКонтакте

Тема в разделе "PHP", создана пользователем LonRv, 26 дек 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. LonRv

    LonRv Создатель

    Регистр.:
    28 апр 2009
    Сообщения:
    19
    Симпатии:
    18
    Приветствую всех. Я пишу новостную рассылку ВКонтакте для своих юсеров (в ЛС) (не спам), и столкнулся с проблемой. Скрипт успешно авторизируется, переходит на страницу mail, извлекает secure, chas, photo, но не отправляет само сообщение. Пост параметры были получены путём дописывания в hosts 127.0.0.1 vkontakte.ru. Запрос возвращает пустую страницу. В чём может быть проблема? Заранее спасибо!

    код собсно
    PHP:
    $CURL curl_init();

    curl_setopt ($CURLCURLOPT_URL'http://vkontakte.ru/login.php');
    curl_setopt ($CURLCURLOPT_FAILONERROR1);
    curl_setopt ($CURLCURLOPT_FOLLOWLOCATION1);
    curl_setopt ($CURLCURLOPT_RETURNTRANSFER,1);
    curl_setopt ($CURLCURLOPT_TIMEOUT20);
    curl_setopt($CURLCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4');
    curl_setopt ($CURLCURLOPT_POST1); 
    curl_setopt($CURLCURLOPT_COOKIEFILE"./cook");
    curl_setopt($CURLCURLOPT_POSTFIELDS'email=avatar-forum@ua.fm&pass=Fi28rDGjf3138jf&expire=1'); 
    $Result curl_exec ($CURL);

    curl_setopt($CURLCURLOPT_URL"http://vkontakte.ru/mail.php?act=write&to=37771474");
    curl_setopt($CURLCURLOPT_REFERER"http://vkontakte.ru/index.php");
    curl_setopt ($CURLCURLOPT_TIMEOUT20);
    curl_setopt($CURLCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4');
    curl_setopt($CURLCURLOPT_COOKIEFILE"./cook");
    curl_setopt($CURLCURLOPT_RETURNTRANSFER1);
    $Result  curl_exec($CURL);

    preg_match_all ('/name\=\"secure\" value\=\"{1}(.*?)\"/'$Result$Values_Array);
    $secure $Values_Array[1][0];

    preg_match_all ('/name\=\"chas\" value\=\"{1}(.*?)\"/'$Result$Values_Array);
    $chas $Values_Array[1][0];

    preg_match_all ('/name\=\"photo\" value\=\"{1}(.*?)\"/'$Result$Values_Array);
    $photo $Values_Array[1][0];

    curl_setopt($CURLCURLOPT_URL"http://vkontakte.ru/mail.php");
    curl_setopt ($CURLCURLOPT_TIMEOUT20);
    curl_setopt($CURLCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4');
    curl_setopt ($CURLCURLOPT_POST1); 
    curl_setopt($CURLCURLOPT_COOKIEFILE"./cook");
    curl_setopt($CURLCURLOPT_POSTFIELDS'act=sent&ajax=1&secure='.$secure.'&chas='.$chas.'&photo='.$photo.'&to_id=37771474&to_reply=0&title=blah&message=blah blah'); 

    $Result  curl_exec($CURL);
    echo 
    $Result;
     
  2. skn78

    skn78 Создатель

    Регистр.:
    14 апр 2007
    Сообщения:
    21
    Симпатии:
    0
    попробуй использовать http analyzer сперва на контакте,
    потом со своим скриптом и сам увидишь где разница.
    там и пост параметры можешь видить в "сыром" виде.

    а hosts дописывать не совсем реальная картина получится.
    htttp analyzer можешь в варезе найти, есть и другие подобные проги.
     
  3. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    А что собственно на локалхосте делает принимающий скрипт mail.php?
     
  4. user99

    user99 Постоялец

    Регистр.:
    13 янв 2008
    Сообщения:
    127
    Симпатии:
    12
    > hosts 127.0.0.1 vkontakte.ru

    Тоже интересно, как может скрипт соединяться с vkontakte.ru и передавать данные если домен на локаль настроен? Он и вернет пустую страницу... или я чего то не понял?
     
  5. Speedbird

    Speedbird Писатель

    Регистр.:
    23 май 2009
    Сообщения:
    2
    Симпатии:
    0
    Рекомендую взять любой сниффер и сравнить запрос, отсылаемый браузером и твоим скриптом
     
  6. user99

    user99 Постоялец

    Регистр.:
    13 янв 2008
    Сообщения:
    127
    Симпатии:
    12
    Вот ссылка на сниффер http://www.wireshark.org/ мне он в многом помогает. Будут еше вопросы пиши, но мне все таки не понятно как скрипт работает при hosts 127.0.0.1 vkontakte.ru интересно бы услышать ответ автора.
     
  7. FlashBlack

    FlashBlack Постоялец

    Регистр.:
    19 сен 2006
    Сообщения:
    77
    Симпатии:
    45
    LonRv, Контакт поменял способ авторизации. Он там 3ёх-ярусный.
     
Статус темы:
Закрыта.