Дата: 2010-08-22 13:37:22
Комментариев: 0
Для чего это нужно? Можно таким образом слать смс с курсами валют, погодой и другой полезной информацией. Просто создаем виртуала, френдим его и нажимаем у него на ссылку "Получать статусы через SMS". Всё, осталось только изменять его статус и получать смс уведомления на свой телефон!
Сам скрипт:
$cat status.php
<?
 
$vkontakteEmail = 'ваш email для вконтакте';
$vkontaktePassword = 'пароль';
 
$f=fopen(dirname(__FILE__).'/status.txt','r');
$statusTwitter = fread($f,512);
fclose($f);
//$statusTwitter = "Тест";
 
$vk = new VkontakteAPI($vkontakteEmail, $vkontaktePassword);
$vk->auth();
 
$statusVkontakte = $vk->getStatus();                       
 
if ($statusTwitter != $statusVkontakte)
{
	$vk->setStatus($statusTwitter);
}
 
class VkontakteAPI {
	var $email = '';
	var $password = '';
	var $pageBody;
	var $userID = '';
	var $activityhash = '';
 
	function __construct($email, $password)
	{
		$this->email = $email;
		$this->password = $password;
	}	
 
	function auth()
	{
		$ch = curl_init();
		curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; (R1 1.5))");
		curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
		curl_setopt($ch, CURLOPT_COOKIEJAR,  'cookies.txt');
		curl_setopt($ch, CURLOPT_TIMEOUT, 30);
 
		curl_setopt ($ch, CURLOPT_URL, 'http://vkontakte.ru/'); 
 
		$body = curl_exec($ch);
		sleep(2);
 
		curl_setopt($ch, CURLOPT_POST, 1);
		curl_setopt($ch, CURLOPT_POSTFIELDS, "email=".$this->email."&pass=".$this->password);
		curl_setopt ($ch, CURLOPT_URL, 'http://vkontakte.ru/login.php'); 
		$body = curl_exec($ch);
 
		$this->pageBody = curl_exec($ch);
		sleep(2);
 
		$arr = array();
		preg_match_all("|<input\stype=\"hidden\"\sid=\"mid\"\svalue=\"(.+)\">|U", $this->pageBody, $arr);
		$this->userID = @$arr[1][0];
 
		preg_match_all("|<input\stype=\'hidden\'\sid=\'activityhash\'\svalue=\'(.+)\'>|U", $this->pageBody, $arr);
		$this->activityhash = $arr[1][0];
 
		curl_close($ch);
	}
 
	function getStatus()
	{
		$arr = array();
		preg_match_all("|activity_editor\.show\(\)\;return\sfalse\;\">(.+)<|U", $this->pageBody, $arr);
		$status = @$arr[1][0];	
		return substr($status, 0, strlen($status) - 1);
	}
 
	function setStatus($text)
	{
		$ch = curl_init();
		curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; (R1 1.5))");
		curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
		curl_setopt($ch, CURLOPT_COOKIEJAR,  'cookies.txt');
		curl_setopt($ch, CURLOPT_TIMEOUT, 30);
 
		curl_setopt($ch, CURLOPT_URL, 'http://vkontakte.ru/profile.php'); 
		curl_setopt($ch, CURLOPT_POST, 1);
		curl_setopt($ch, CURLOPT_POSTFIELDS, "setactivity=".urlencode($text)."&activityhash=".$this->activityhash);
 
	        curl_setopt($ch, CURLOPT_REFERER, 'http://vkontakte.ru/id'.$this->userID);
 
		$body = curl_exec($ch);
 
		curl_close($ch);	
	}
}
?>
 

Меняем email и пароль на свои, в файле status.txt будем писать то, что хотим получать и можно запускать:
php ./status.php

Через пару минут, приходит смс.


Файлы:
vkstatus.tar.gz

Смотрите также:
Мониторинг изменения файла с помощью Inotify
теги: php, vkontakte

0 комментариев

Оставить комментарий: