Твиттер с каждым днем все плотнее входит в блогосферу. Одной из причин тому является возможность следить за тематической информацией и новыми статьями других блоггеров. Также, следя за тем, кто ссылается на ваш блог в Твиттере, можно делать выводы о том, какие посты больше нравятся читателям. Ведь если рекомендуют почитать, значит нравится, не так ли?
Кстати, на днях узнал про тренинг-центр "Говорун". До них вообще ничего не слышал про психологические тренинги, а теперь задумался - не заняться ли мне чем-нибудь подобным? Всегда пригодится.
Но вернемся к теме. Простейший способ найти ссылки на блог - воспользоваться стандартным поиском твиттера и искать URL. Но проблема в том, что большая часть ссылок сокращается с помощью различных сервисов, и их вы уже не найдете таким образом.
Я поставил перед собой задачу: найти способ выуживания всех ссылок из твиттера, даже скрытых, и сделать подобие виджета для вывода твитов с упоминаниями определенного сайта.
C реализацией мне помог сервис backtweets.com, выполняющий первую часть задачи: поиск ссылок на заданный сайт. Остается лишь воспользоваться предоставленной информацией, а точнее, написать скрипт, приводящий ее в требуемый вид. Использовал я PHP.
Получившийся скрипт получает последние твитты, в которых указана ссылка на заданный сайт и выводит их. Для ускорения загрузки страниц твиты кэшируются на сервере. Срок жизни кэша задается в скрипте, равно как и число выводимых твиттов.
Собственно, сам скрипт:
/* Функция закачки файла */
function download($url, $xmlfile) {
$file = file_get_contents($url);
if ($file) file_put_contents($xmlfile, $file);
}
/* Блок настроек */
$site_url = 'webholt.ru'; // искомый сайт
$tweets_count = '3'; // Число выводимых твитов
$xmlfile = 'twilinks.xml'; // Пусть к файлу кэша
$file_life = '1'; // Срок жизни кэша в часах
/* Формирование запроса твиттов с ссылками */
$xml_url = 'http://backtweets.com/search.xml?q='.$site_url.'&key=key';
/* Закачка файла на сервер при его отсутствии */
if (!file_exists($xmlfile)) {
download($xml_url, $xmlfile);
}
/* Разбор ленты, вывод */
$xml = simplexml_load_file($xmlfile);
$i = 1;
foreach ($xml->tweets->entry as $entry) {
$tweet = $entry->tweet_text;
$avatar = $entry->tweet_profile_image_url;
$tweeple = $entry->tweet_from_user;
$tweet_id = $entry->tweet_id;
echo '<div class="twipost"><img src="'.$avatar.'" class="twiava"><a href="http://twitter.com/'.$tweeple.'" rel="nofollow">@'.$tweeple.'</a><br>'.$tweet.'</div>';
$i++;
if ($i > $tweets_count) break;
}
/* Копирайт. Может редактироваться на каше усмотрение. Особо жадные и наглые вебмастера могут удалить или закрыть ссылку от индексации. Это на вашей совести */
echo 'Скрипт от <a href="http://webholt.ru/web-designers/129-najti-vse-ssylki-na-sajt-iz-tvittera.html">webholt.ru</a>';
/* Проверка файла кэша на устаревание */
if (time() > filemtime($xmlfile) + 60*60*$file_life) {
// Закачать и сохранить
download($xml_url, $xmlfile);
}
?>
Для нормального отображения необходимо настроить CSS. Мои настройки:
float:left;
padding-right:10px;
}
.twipost{
clear:both;
border-bottom:1px dotted #e1e3e3;
padding-bottom:10px;
padding-top:5px;
}
Подчеркнуты обязательные параметры. Остальное - на свое усмотрение, под дизайн вашего сайта должно подгоняться.
Данный скрипт будет правильно работать с кодировкой UTF-8. Если у вас Windows-1251, в блоке скрипта *Разбор ленты, вывод* найдите строку
и замените ее на
Я бы не делал кэширование, если бы не заметил, что с ним скрипт отрабатывает примерно в полторы тысячи раз быстрее. Впечатляет, не правда ли? Если необходимо срочно сбросить кэш, просто зайдите по FTP и удалите файл "twilinks.xml".
Для корректной работы кэширования необходимо, чтобы каталог с файлом кэша был доступен для записи.
Саму работу скрипта можно понять из кода и комментариев к нему.
Вот, собственно, и все. Результат работы можно увидеть у меня в сайдбаре (Ссылки на блог из Тви).







