Tweetburner - сервис коротких ссылок для twitter`a

Пятница, 19 Февраль 2010

 

Все наверно слышали что такое Twitter, зачем он нужен и о способах продвижения и кросспостинга в нем.

 

Но вот о том как получать укороченные ссылки на материалл, для этого кроспостинга и автоматизировать этот процесс, как-то не удалось мне найти, может плохо искал... Предлагаю для этого скрипт который это делает.

 

Сам этот скрипт не укарачивает ссылку, он лишь передает ее по POST в специальный сервис для твиттера, который и преобразует ссылки. Сервис называеться Tweetburner и представляет из себя обычную форму для ввода вашей ссылки-ленты для генерации ее короткой ссылки-редиректа при переходе по которой пользователя отправят по нужному (настоящему) адресу. Это используеться для того чтобы увеличить количество свободных символов в сообщении в твиттере, тк ссылки очень часто бывают весьма длинные, символов доступных в сообщении может не хватить.

 

Расмотрим сам скрипт. Скрип работает следующим образом:

 

Формируем данные для POST запроса:

 

1) Ссылка которая будет передана удаленному обработчику

 

 
<?php
$url = "http://cleverscript.ru/index.php/javascript/mootools/15-pagemooslider";
$url = urlencode($url);
?>
 

 

2) Формируем POST данные которые будут переданы, это наша сссылка и "commit" - для чего нужен незнаю, но нужен :)) (обнаружел его через Firebug);

 

 
<?php $post = "link[url]=".$url."&commit=Shorten%20it!"; ?>
 

 

3) Парсим урл - из которого получаем HOST и ACTION

 

 
<?php 
$path = "http://tweetburner.com/links";
$parse_path = parse_url($path);
$host = $parse_path["host"];
$action = $parse_path["path"];
?>
 

 

4) Открываем сокет соединение с удаленным сервером (хостом)

 

 
<?php
$connect = fsockopen($host, 80, $errn, $errst, 10);
?>
 

 

5) И если соединение установлено то формируем пакет заголовков с данными, которые будем отсылать обработчику по текущему соединению

 

 
<?php
$packet  = "POST ".$action."?".$post." HTTP/1.1\n";
$packet .= "Host: ".$host."\n";
$packet .= "Content-Type: application/x-www-form-urlencoded\n";
$packet .= "Content-Length: ".strlen($post)." \n\n";
$packet .= $post."\n\n";
?>
 

 

6) Записываем данные в поток (передаем пакет данных)

 

 
<?php
fputs ($connect, $packet);
?>
 

 

7) Cчитываем ответ и заносем в массив, после чего закрываем соединение

 

 
<?php
$data = array();
while ($gets = fgets($connect, 2048)){
  array_push($data, $gets);
}
fclose ($connect);
?>
 

 

8) Ответ в массиве будет примерно следующим (это вывод через print_r())

 

 
Array ( [0] => HTTP/1.1 200 OK [1] => Date: Fri, 19 Feb 2010 01:44:33 GMT [2] => Server: Apache/2.2.3 (Debian) PHP/5.2.0-8+etch13 Phusion_Passenger/2.0.5 [3] => X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 2.0.5, Enterprise Edition [4] => X-Runtime: 0.00695 [5] => ETag: "5d987cff1f47788e92d3fb31e9e61a1a" [6] => Cache-Control: private, max-age=0, must-revalidate [7] => Set-Cookie: _tweetburner_session=BAh7BiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo%0ASGFzaHsABjoKQHVzZWR7AA%3D%3D--e7a0a84a54dd443ece2340d671b9f5e7727ac7f0; path=/ [8] => Content-Length: 22 [9] => Content-Type: text/html; charset=utf-8 [10] => [11] => http://twurl.nl/633hwe )
 

 

9) Наша же укороченная ссылка будет 11 элементом массива

 

 
<?php
$twit_u = $data[11];
  ?>
 

 

Ну вроде и все. На всякий слкучай проверяйте функцией print_r() что приходит в ответе, вдруг чтото измениться у них ;)

 

Download

 

PS. И не забудьте подписаться на ленту новостей RSS

Метки:

Комментарии 

 
anonim Понедельник, 24 Январь 2011

Классный у вас сайт,спасибо. Нашла то что надо. Вот только хочется спросить: а можно подписаться на RSS рассылку новостей? Было бы очень здорово...




------------
NW Novorossiysk

 

 
 
anonim Понедельник, 24 Январь 2011

Конечно можно , оранжевая иконка RSS под правым меню.
Или вот Rss подписка

 

 
 
anonim Понедельник, 28 Январь 2013

Рекомендую еще один сервис сокращения ссылок http://link.ac с возможность просматривать статистику по переходам, а также получит QR код ссылки.

 

 

Добавить комментарий