Отправка сообщения в твиттер с помощью php

Twitter уверенно вошел в нашу жизнь. Для кого-то это развлечение, для кого-то средство маркетинга. Тем не менее, не так давно была опубликована 10-ти миллиардная запись, следовательно, столько народу ошибаться не может. Для одного своего сайта, я решил как-то публиковать новости и автоматически отсылать их в твиттер. Алгоритм решения данной задачи прост.

  1. Зарегистрировать аккаунт в твиттере под ваш проект
  2. Сформировать сообщение с учетом правил (140 символов)
  3. Отправить сервису наше сообщение.

С первым пунктом  я думаю проблем не возникнет. Само сообщение формируем следующим образом: Заголовок новости + ссылка на страницу. На этом пункте остановимся подробней. Так как для нас каждый символ несет ценность, то для публикации ссылки её нужно сократить, для этого воспользуемся таким сервисом как bit.ly. Код функции будет следующий:

	function getShortUrl( $fullUrl )
	{
		$url = _readFile('http://bit.ly/api?url=' .urlencode($fullUrl) );
	}
	function _readFile($url) {
		if (ini_get('allow_url_fopen') == 1 || ini_get('allow_url_fopen') ==
		'on' ||	ini_get('allow_url_fopen') == 'On') {
			$file = file_get_contents($url); if ($file == false) {
				$handle = fopen($url, 'r');
				$file = fread($handle, 4096); fclose($handle);}} else {
			if (function_exists('curl_init')) {$ch = curl_init($url);
			curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
			curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5);
			$file = curl_exec($ch);	curl_close($ch);}}
		if ($file != false && $file != '') return $file;
	}

Итак, короткий урл мы получили. Теперь формируем сообщение.

	function prepareToTwitter( $Text, $fullUrl )
	{
		if( $newsUrl ){
			$shortUrl = '... ' . getShortUrl($fullUrl );
		} else {
			$shortUrl = '';
		}
		$Text = strip_tags($Text);
		$limitText = 140 - strlen($shortUrl);
		if( $limitText <= 0){
			$Text = $shortUrl;
		}
		else {
			$Text = substr($Text, 0, $limitText );
			$Text.= $shortUrl;
		}
		return $Text;
	}

Итак, сообщение сформировано, осталось отправить его в твиттер. Это сделает следующая функция:

	function post($username,$password,$message)
	{
	    $host = "http://twitter.com/statuses/update.xml?status=".urlencode(stripslashes(urldecode($message)));

	    $ch = curl_init();
	    curl_setopt($ch, CURLOPT_URL, $host);
	    curl_setopt($ch, CURLOPT_VERBOSE, 1);
	    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	    curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
	    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
	    curl_setopt($ch, CURLOPT_POST, 1);

	    $result = curl_exec($ch);

	    $resultArray = curl_getinfo($ch);

	    curl_close($ch);

	    if($resultArray['http_code'] == "200"){
	         return true;
	    }
	     return false;
	}

Теперь, чтобы отправить сообщение, нужно написать следующую строку:

post('Имя пользователя','Пароль', prepareToTwitter( 'Текст сообщения', 'Урл который добавляется к сообщению (например http://site.ru/)' ) );

Если вы только начинаете пользоваться твиттером, то советую ознакомиться с некоторыми публикациями из заметок Seo-новичка о данном сервисе. Его рекомендации помогут избежать некоторых ошибок. Также будут полезны рекомендации такого легендарного блоггера и сеошника, как Михаил Шакин — его статья о работе с твиттером заслуживает внимания не только новичком твиттер-движения. Применив все полученные знания вы можете выйти на реальный заработок в интернете уже через несколько месяцев.
[ad name=»Adsense»]

Отправка сообщения в твиттер с помощью php: 4 комментария

  1. Жуткий гкод. if($resultArray['http_code'] == "200"){ $twitter_status= true; } else { $twitter_status= false; } return $twitter_status; Подобные конструкции убивают

    • Согласен. лучше было бы

        if($resultArray['http_code'] == "200"){ return true;	    }  return false; 

      Оправку брал из примера 🙂
      Уже поправил, с Вашего позволения

Обсуждение закрыто.