Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Ответ
 
Опции темы
Старый 11.12.2013, 00:42   #1
Почетный Пользователь
 Рыцарь
Аватар для the-boxi
 
the-boxi сломал счётчик популярности :(the-boxi сломал счётчик популярности :(the-boxi сломал счётчик популярности :(the-boxi сломал счётчик популярности :(the-boxi сломал счётчик популярности :(the-boxi сломал счётчик популярности :(the-boxi сломал счётчик популярности :(the-boxi сломал счётчик популярности :(the-boxi сломал счётчик популярности :(the-boxi сломал счётчик популярности :(the-boxi сломал счётчик популярности :(
Регистрация: 09.02.2011
Сообщений: 373
Популярность: 38009
Сказал(а) спасибо: 612
Поблагодарили 448 раз(а) в 175 сообщениях
Отправить сообщение для the-boxi с помощью ICQ Отправить сообщение для the-boxi с помощью MSN Отправить сообщение для the-boxi с помощью Skype™
 
Smile Вконтакте: генерируем рандомный статус(или любое другое действие) каждые 5 минут

Предисловие:
Тему старался подогнать под microsoft стайл, жалко что нельзя установить ширину шрифта :с

В данной теме пойдет речь о том, как сделать статус, который будет меняться каждые 5 минут. Выбрать статусы вы можете любые, но в теме это будет текст из песни: The Bunny the Bear – Another Day

Текст песни

Для начала:
Нам понадобится хостинг, всем советую hostinger.ru (использовал его) он выдержит эту функцию.
Но подойдут любые хостинги которые поддерживыют рнр 5.3(можно 5.1) и Cron задачи

Настройка скриптов:
На примере hostinger.ru
Нам понадобиться зарегистрироваться на хостинге.
После того как зарегистрировались, нужно загрузить файлы.
Первым нам понадобиться файл VkApi.php, его можно взять тут!

Теперь немного усовершенствуем его:
Код:
<?php
/**
 * @author Boxya
 * @copyright 2013
 */
class VkApi{
    //Ссылка на оконо автоиизации приложения
    public $UrlOAuth = "https://oauth.vk.com/authorize?client_id=3890571&scope=15391&redirect_uri=blank.html&display=mobile&v=5.1&response_type=token";
    //Переменная для хранения куков
    public $Cookie = null;
    //Переменная для хранения ключа доступа
    public $Acces = null;
	// Переменная хранит логин
	public $Login = null;
    //Пароль
    public $Password = null;
    //Авторизован ли в вк
    public $AuthInVk = false;
    
    //Конструктор класса
    public function VkApi($login,$pass)
    {
       $this->Login = $login;
       $this->Password = $pass;
       $this->Login();
    }
    
    //Функция парсинга
    function Parse($what, $start, $end)
    {
        $i=0;
        while (true)
        {
            $pos1 = strpos($what,$start);
            if ($pos1 == FALSE) 
             break;   
            $pos1 =$pos1 + strlen($start);
            $pos2 = strpos($what,$end,$pos1);
            if ($pos2 == FALSE) 
            {
             break;   
            }
            $arr[$i] = substr($what,$pos1,$pos2-$pos1);
            $i++;
            $what = substr($what,$pos1);
        }
        return $arr;
    }
    
    //Функция авторизации
    function Login()
    {
        $text = $this->SendMassege("http://m.vk.com/");
        //Получаем ссылку на вторизацию
        $some = $this->Parse($text, "<form method=\"post\" action=\"", "\"");
        $action = $some[0];
        //Составляем данные на отправку
        $toSend = "email=".$this->Login."&pass=".$this->Password;
        //Отправляем запросс авторизации
        $text = $this->SendMassege($action,$toSend);
        //Отправляем запросс на автризацию в приложении     
        $text = $this->SendMassege($this->UrlOAuth,"",$this->Cookie).'\r\n';
        //Получаем ссылку на авторизацию
        $some = $this->Parse($text, "<form method=\"post\" action=\"", "\"");
        //Отправляем запросс
        $text = $this->SendMassege($some[0],"",$this->Cookie).'\r\n';
        //Получаем ключ доступа
        $some = $this->Parse($text, "access_token=", "&");
        //Сохраняем ключ
//        echo "http://vk.com/login.php?act=security_check&to=&al_page=";
//        $text = $this->SendMassege("http://vk.com/login.php?act=security_check&to=&al_page=","",$this->Cookie,false);
//        $hash = $this->Parse($text,"{act: 'security_check', code: ge('code').value, to: '', al_page: '', hash: '","'");
//        $text = $this->SendMassege("http://vk.com/login.php","act=security_check&al=1&al_page=3&code=9844433&hash=$hash[0]&to=",$this->Cookie,false);
        $this->Acces = $some[0];
    }
    function SetStatusNewYearTime()
    {
        $realtime = mktime(0, 0, 0, 01, 01, date('Y')+1);
        $timeNow = time();
        $futuretime = $realtime - ($timeNow);
        echo date("j days h hours i minutes s seconds", $futuretime);
        $resp = $this->Method("status.set","&text=".urlencode(date("New Year: j days h hours i minutes s seconds", $futuretime)));
    }
    function RandomStringStatus($length)
    {
        $resp = $this->Method("status.set","&text=".urlencode($this->generateRandomString($length)));
    }
    function StringStatus()
    {
        $text = "Another day
Another prayer to reach one ear
And fade away
Another torn up photograph
Wrapped tight in flames
I've built my lies on promises, I'll never make
I'm caught up for some reason
We sail the sea together
Searching for a light
We sail through stormy weather
Well depends on you
We sail the sea together
Searching for a light
We sail through stormy weather
Well depends on you
Another day
Another prayer it sounds severe
To say : I'm saved
Another torn up photograph
I watched it fade
I never knew the weight would cause my heart to break
When living isn't half as easy
We sail the sea together
Searching for a light
We sail through stormy weather
Well depends on you
We sail the sea together
Searching for a light
We sail through stormy weather
Well depends on you
Another day
Another broken home
I've got myself to blame
I never knew the weight would cause my
Heart to break
Cause my heart to break
We sail the sea together
Searching for a light
We sail through stormy weather
Together
We sail the sea together
Searching for a light
We sail through stormy weather
Well depends on you
We sail the sea together
Searching for a light
We sail through stormy weather
Well depends on you
We sail the sea together
Searching for a light
We sail through stormy weather
Well depends on you
We sail the sea together
Searching for a light
We sail through stormy weather
Together?"; 
        $alltexts = explode("\n",$text);
        $some = $alltexts[rand(0,count($alltexts)-1)];
        $resp = $this->Method("status.set","&text=".urlencode($some));
    }
    function generateRandomString($length) {
        return substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length);
    }
    //Функция для отправки метода вк
    function Method($name, $params)
    {
        //Записываем на отправку ключ доступа и данные переданные функцие
        $MethodData = "access_token=".$this->Acces.$params;
        //Отправляем запросс
        $some = $this->SendMassege("https://api.vk.com/method/".$name."?".$MethodData,null, $this->Cookie);
        //Возвращаем ответ
        return $some;
    }
    function SendMassegeVk($toid,$title,$text)
    {
        $title = urlencode($title);
        $text = urlencode($text);
        $resp = $this->Method("messages.send","&title=".$title."&user_id=".$toid."&message=".$text);
        echo $resp;
    }
    
    //Функция отправки запросса 
    function SendMassege($url, $post=null,$cookie=null,$r=true)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, 'FIREFOX');
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
        curl_setopt($ch, CURLOPT_POST, ($post==null)? 0:1);
        if($post!=null)
        {
        curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
        }
        if($this->Cookie!=null)
        {
        curl_setopt($ch, CURLOPT_COOKIE, $this->Cookie);
        }
        $res=curl_exec($ch);
        curl_close($ch);
        
        if(strpos($res,"Location:")===false)
        null;
        // Проверка на смену локации
        else if($r)
        {
            $location = $this->Parse($res,"Location: ","\r\n");
            if($location[0] != "/")
            {
            $res .=$this->SendMassege($location[0],$this->Cookie);
            }
        }
        $arr_cook = $this->Parse($res, "Set-Cookie: ", ";");
        //Записываем куки в нашу переменную
        if (is_array($arr_cook))
        {
            foreach($arr_cook as $st)
            {
            $this->Cookie .= $st.";";
            }
        }
        return $res;
    }
}
$test = new VkApi(логин,пароль);
$test->StringStatus();
?>
Все что вам нужно сделать:

В методе StringStatus() указать в переменной
Код:
$text
статусы какие хотите отображать рандомно на странице, а в строке
Код:
$alltexts = explode("\n",$text);
заменить
Код:
\n
на ваш разделительный символ статусов, в примере это новая строка.

Тут добавлено немного закоментированого кода в Login(), если контакт потребует подтверждение того, что это вы(ведь сервера хостера в США), то наш скрипт подтвердит.
Код:
//        echo "http://vk.com/login.php?act=security_check&to=&al_page=";
//        $text = $this->SendMassege("http://vk.com/login.php?act=security_check&to=&al_page=","",$this->Cookie,false);
//        $hash = $this->Parse($text,"{act: 'security_check', code: ge('code').value, to: '', al_page: '', hash: '","'");
//        $text = $this->SendMassege("http://vk.com/login.php","act=security_check&al=1&al_page=3&code=9844433&hash=$hash[0]&to=",$this->Cookie,false);
Где:
Код:
code=9844433
цифры мобильного, которые требует вк, 2 цифры оператора и 5 номера, вставите свои.
Все теперь скрипт готов к запуску, он будет генерировать случайный статус.


Запуск на хостинге:
Вообще хостингер странная штука, и этот скрипт работает только с бубном. Нужно создать скрипт, с которого вызовем HTTP запрос к файлу основного скрипта.
То есть создаем скрипт с именем, к примеру, 1.рнр. И пишем в нем:
Код:
<?php
file_get_contents('http://ваш домен/VkApi.php');
?>
Теперь заходим в панель хостинга и находим наш крончик :З :
[Ссылки могут видеть только зарегистрированные пользователи. ]
Заходим в него и добавляем новую задачу с такими параметрами:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Текст задачи:
Код:
public_html/1.php
Все теперь скрипт будет заходить каждые пять минут на ваш аккаунт и менять статус.
Вы конечно можете его улучшить и убрать постоянную авторизацию и хранить ключ в базе данных.


Спасибо за внимание, Читеры
С уважением, the-boxi!
________________
Разработка программ на заказ, все вопросы skype - the-boxi, ICQ - 616027961

Последний раз редактировалось the-boxi; 11.12.2013 в 00:45.
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
dikii09 (05.03.2014), [Sean] (21.12.2013)
Ответ

Метки
рандомный статус, статус, статус вконтакте


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Вылетает каждые 3-5 минут. Zeweee Общение и обсуждение R2 Online 0 31.08.2013 22:37
[Подсказка] Любое действие в тюряге, зная только auth gothic130 Тюряга ВКонтакте 10 09.02.2011 12:04

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 19:43.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net