Agregador de redes sociais em PHP

Postado por Rafael Monteiro em 28/10/2009

Cenário

Atualmente temos uma diversidade de conteúdo espalhado sob diversas formas, seja através de fotos, comentários, tweets, blogs, links favoritos, etc. Como exemplo podemos citar as redes: Flickr, Last.fm e Twitter.

Não seria interessante agregá-los em uma página ?

Isso pode ser feito utilizando a classe SimplePie, de código aberto, fácil utilização, escrita em PHP e que nos ajudará a trabalhar com o RSS necessário para a manipulação dos dados.

Ela pode ser encontrada em: http://simplepie.org/downloads/.


Utilização

Primeiramente precisamos coletar os feeds desejados.

Para isso, acesse seus perfis (ou de quem você deseja seguir) e guarde as URLs que geralmente estão nos ícones de RSS.

Precisamos realizar um simples teste de compatibilidade (já disponível no pacote) para verificarmos se o servidor que rodará a aplicação oferece suporte completo à classe. Esse teste encontra-se na pasta "compatibility_test".

Devemos criar uma pasta para o cache da aplicação. Basicamente ela armazenará certificados.


Exemplo

Definindo path da classe e variáveis de configuração

<?php
require_once('./simplepie/simplepie.inc');
 
$cache = "./rsscache";
$duration = 2000;



Definindo os feeds

// Para o blog e twitter utilizamos o perfil da Stiod, como exemplo
$blog = new SimplePie("http://blog.stiod.com/rss.xml", $cache, $duration);
$twitter = new SimplePie("http://twitter.com/statuses/user_timeline/17368651.rss", $cache, $duration);
// Substitua PERFIL pelo desejado
$lastfm = new SimplePie("http://ws.audioscrobbler.com/2.0/user/PERFIL/lovedtracks.rss", $cache, $duration);



Função para transformar os nomes em links diretos

 
 function twitterify($ret) {
   $ret = preg_replace("#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t< ]*)#", "\\1<a href=\"\\2\">\\2</a>", $ret);
   $ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r< ]*)#", "\\1<a href=\"http://\\2\">\\2</a>", $ret);
   $ret = preg_replace("/@(\w+)/", "<a href=\"http://www.twitter.com/\\1\">@\\1</a>", $ret);
   $ret = preg_replace("/#(\w+)/", "<a href=\"http://search.twitter.com/search?q=\\1\">#\\1</a>", $ret);
   return $ret;
 }
 



Para carregarmos os itens, utilizamos uma estrutura de repetição como a seguinte

<?php foreach ($twitter->get_items() as $item) : ?>
<li>
 
<?php echo twitterify(str_replace("raena: ", "", $item->get_title())); ?>
 
<a href="<?php echo $item->get_link(); ?>"><?php echo $item->get_date(); ?></a>
</li>
 
<?php endforeach; ?>



Baixe o exemplo completo do agregador

Esse foi um exemplo básico, entretanto, não ficamos restritos ao exposto, é possível fazermos aplicações com maiores funcionalidades.

Para isso, acesse o Wiki, onde existem inclusive plugins para a extensão da classe.

2 Comentário para “Agregador de redes sociais em PHP”

  1. Ribamar FS disse em 28/10/2009 as 20:09

    Muito obrigado pela ótima dica.

  2. Fazer Site disse em 28/10/2009 as 06:46

    Um, interessante, vou testar essa classe aqui

Trackback URI | RSS dos comentários

Deixe um comentário

Av. Conselheiro Nébias, 368A, Cj. 413
Vila Mathias - Santos - SP
Telefone: (13) 3345-4580

© 2008 - 2009 Stiod. Todos os direitos reservados.