Mostrar número de seguidores do Twitter no blog
Postado por: Pedro Rogério em 19 de outubro de 2009
Como podem ver, a sidebar do meu blog mostra o número total de seguidores que eu possuo no Twitter em modo texto, existem plugins para WordPress que fazem isso facilmente, mas vou mostrar aqui algumas maneiras de se fazer isso sem plugin, com isso você pode utilizar esse código em qualquer site ou blog:
1ª Opção
Esse código funciona em qualquer ferramenta desenvolvida em PHP, mas se você deseja utilizá-la, basta color o seguinte código no arquivo functions.php do seu tema WordPress. Caso seu tema não possua um arquivo chamado functions.php, basta criá-lo e deixá-lo na mesma pasta com os arquivos do seu tema WordPress:
function string_getInsertedString($long_string,$short_string,$is_html=false){
if($short_string>=strlen($long_string))return false;
$insertion_length=strlen($long_string)-strlen($short_string);
for($i=0;$i<strlen ($short_string);++$i){
if($long_string[$i]!=$short_string[$i])break;
}
$inserted_string=substr($long_string,$i,$insertion_length);
if($is_html && $inserted_string[$insertion_length-1]=='<'){
$inserted_string='<'.substr($inserted_string,0,$insertion_length-1);
}
return $inserted_string;
}
function DOMElement_getOuterHTML($document,$element){
$html=$document->saveHTML();
$element->parentNode->removeChild($element);
$html2=$document->saveHTML();
return string_getInsertedString($html,$html2,true);
}
function getFollowers($username){
$x = file_get_contents("http://twitter.com/".$username);
$doc = new DomDocument;
@$doc->loadHTML($x);
$ele = $doc->getElementById('follower_count');
$innerHTML=preg_replace('/^< [^>]*>(.*)< [^>]*>$/',"\\1",DOMElement_getOuterHTML($doc,$ele));
return $innerHTML;
}
E agora para mostrar o número de seguidores, basta inserir o seguinte código onde você deseja que ele seja mostrado, substituindo, por exemplo, pinceladasdaweb pelo seu nome de usuário no Twitter:
< ?php echo getFollowers("pinceladasdaweb"); ?>
Essa opção é a que utilizo aqui no blog e a vi no blog WpRecipes.
2ª Opção
Essa 2ª opção faz o uso de 2 libs, os arquivos dependentes são: twitter.lib.php e o xml2array.php. Você deve chamá-los em sua página para que tudo funcione corretamente. Para isso, observe um código de exemplo abaixo:
< ?php
include('include/xml2array.php');
include('include/twitter.lib.php');
$user = 'seu-usuario';
$password = 'sua-senha';
$twitter = new Twitter($user, $password);
$friends = $twitter->showUser("xml",'ID_do_Usuario');
$xml=new XML2Array();
$arr=$xml->parse($friends);
$seguidores=$arr['user']['followers_count']['value'];
?>
Você deve editar 3 campos no código para que tudo funcione corretamente, são eles:
- $user = ’seu-usuario’; altere o valor seu-usuario com o seu nome de usuário.
- $password = ’sua-senha’; altere o valor sua-senha com a sua senha do Twitter.
- $friends = $twitter->showUser(”xml”,’ID_do_Usuario’); altere o valor ID_do_Usuario com o ID do seu usuário do Twitter. Para descobrir o ID do seu usuário basta pegar a URL do Fedd do sua página no Twitter, a minha é a seguinte: http://twitter.com/statuses/user_timeline/13524602.rss e pegar aquele número que vem após o valor user_timeline, que aqui é: 13524602.
Para mostrar o resultado, basta inserir o seguinte código no seu site ou blog:
< ?=$seguidores?>
Faça aqui o download dos arquivos necessários para esse exemplo. Essa opção eu encontrei aqui no blog 2kBlog.net.
3ª Opção
Essa 3ª opção foi desenvolvida por Peter Ivanov, é interessante pois utiliza um sistema de cache, uma boa opção para sites com muitas visitas e que precisam de performance em suas aplicações:
/**
* Fetch the number of followers from twitter api
*
* @author Peter Ivanov
* @copyright http://www.ooyes.net
* @version 0.2
* @link http://www.ooyes.net
* @param string $username
* @return string
*/
function twitter_followers_counter($username) {
$cache_file = CACHEDIR . 'twitter_followers_counter_' . md5 ( $username );
if (is_file ( $cache_file ) == false) {
$cache_file_time = strtotime ( '1984-01-11 07:15' );
} else {
$cache_file_time = filemtime ( $cache_file );
}
$now = strtotime ( date ( 'Y-m-d H:i:s' ) );
$api_call = $cache_file_time;
$difference = $now - $api_call;
$api_time_seconds = 1800;
if ($difference>= $api_time_seconds) {
$api_page = 'http://twitter.com/users/show/' . $username;
$xml = file_get_contents ( $api_page );
$profile = new SimpleXMLElement ( $xml );
$count = $profile->followers_count;
if (is_file ( $cache_file ) == true) {
unlink ( $cache_file );
}
touch ( $cache_file );
file_put_contents ( $cache_file, strval ( $count ) );
return strval ( $count );
} else {
$count = file_get_contents ( $cache_file );
return strval ( $count );
}
}
Basta colar o código acima no arquivo functions.php do seu tema WordPress e efetuar a sehuinte alteração na linha 13:
$cache_file = CACHEDIR . 'twitter_followers_counter_' . md5 ( $username );
O scripts guardará os dados em uma pasta cache no diretório root do seu site, mas seria interessante você salvar os dados dentro da pasta do seu tema, então, basta alterar o valor para o seguinte:
$cache_file = "wp-content/themes/meu-tema/cache/" . 'twitter_followers_counter_' . md5 ( $username );
Onde meu-tema será o nome da pasta do seu tema. Com isso, crie lá dentro uma pasta chamada cache e defina permissão 777 para ela, assim você evita problemas de permissão. Feito isso, basta utilizar o seguinte código para mostrar o número de seguidores:
< ?php print twitter_followers_counter('NOME_DE_USUARIO') ?> Seguidores do Twitter
Basta agora substituir NOME_DE_USUARIO pelo seu nome de usuário no Twitter.











Po cara vlw mesmo hein seus tweets são duca.
Parabéns por tudo
Legal. gostei…