Fala pessoal, tudo certo? Dando continuidade a esta série de artigos, hoje vamos ver como buscar e exibir as informações do twitter.
Para quem ainda não viu, recomendo a leitura da primeira parte:
Acessando API do twitter via OAuth com PHP | Parte 1
Para buscar as informações no twitter, basta utilizar o método get() de nossa classe. O primeiro parâmetro é o recurso que será utilizado. Para saber os recursos da API do twitter é só acessar a documentação da API.
Confira a aplicação em funcionamento
1. Informações do usuário autenticado
Para descobrir as informações do usuário autenticado, podemos utilizar o recurso account/verify_credentials.
<?php // @link http://dev.twitter.com/doc/get/account/verify_credentials $usuario = $connection->get('account/verify_credentials'); ?>
As informações retornadas pela API são alocadas no objeto $usuario, desse modo podemos exibir todas propriedades do objeto e seus respectivos valores através da função print_r().
<?php echo '<pre>', print_r($usuario, true), '</pre>' ?>
No caso se eu estiver autenticado com meu twitter (@faael), o código acima irá retornar:
stdClass Object ( [verified] => [id_str] => 30599789 [notifications] => [profile_text_color] => 333333 [url] => http://faael.net [description] => Aficionado por tecnologia, principalmente em relação a web. [default_profile] => 1 [profile_sidebar_fill_color] => DDEEF6 [default_profile_image] => [following] => [profile_background_tile] => [profile_image_url] => http://a0.twimg.com/profile_images/887089721/IMG0023A_normal.jpg [location] => Brasil - Bauru, SP [contributors_enabled] => [time_zone] => Brasilia [profile_link_color] => 0084B4 [screen_name] => faael [follow_request_sent] => [profile_sidebar_border_color] => C0DEED [followers_count] => 121 [show_all_inline_media] => [geo_enabled] => [favourites_count] => 48 [created_at] => Sun Apr 12 04:20:49 +0000 2009 [protected] => [profile_use_background_image] => 1 [name] => Rafael Couto [is_translator] => [lang] => en [friends_count] => 219 [profile_background_color] => C0DEED [id] => 30599789 [listed_count] => 22 [statuses_count] => 115 [profile_background_image_url] => http://a3.twimg.com/a/1302724321/images/themes/theme1/bg.png [utc_offset] => -10800 )
O resultado acima é apenas pra nós sabermos os nomes das propriedades, pois assim podemos exibir apenas as que interessam para nossa aplicação.
<img src='<?php echo $usuario->profile_image_url ?>' /> <h3><?php echo $usuario->name ?></h3> <big><strong><?php echo '@' . $usuario->screen_name ?></strong></big> <span class="location"><?php echo $usuario->location ?></span> <p> <em><?php echo $usuario->description ?></em> <br /> <a href='<?php echo $usuario->url ?>'><?php echo $usuario->url ?></a> </p>
2. Atualizações dos amigos
Para recuperar as atualizações dos amigos do usuário autenticado, podemos utilizar o recurso statuses/home_timeline ou statuses/friends_timeline, a diferença é que o último não mostra os retweets.
<?php // @link http://dev.twitter.com/doc/get/statuses/home_timeline $timeline = $connection->get('statuses/home_timeline', array('count' => 5)); ?>
O método get() aceita como segundo parâmetro um vetor com os parâmetros do recurso. Por exemplo, podemos limitar a quantidade de registros que serão retornados passando o parâmetro count. Para saber os parâmetros de um recurso, basta ver na documentação da API.
<?php foreach ($timeline as $tweet): ?> <div class="tweet"> <img src='<?php echo $tweet->user->profile_image_url ?>' /> <span class="usuario"> <big><a href="http://twitter.com/<?php echo $tweet->user->screen_name ?>/"><?php echo $tweet->user->screen_name ?></a></big> <?php echo $tweet->user->name ?> </span> <br /> <span class="texto"> <?php echo $tweet->text ?> </span> <br /> <span class="data"> <?php echo date('d/m/Y H:i:s', strtotime($tweet->created_at)) ?> </span> </div> <?php endforeach ?>
Alguns detalhes:
- Linha 1: Como um usuário pode ter mais de uma atualização de amigos, percorremos a $timeline utilizando o laço foreach(). Portanto, tudo que está dentro do foreach será exibido para cada atualização;
- Linha 5: acessamos a propriedade profile_image_url do objeto user (usuário que enviou o tweet), que nos retorna o caminho da imagem de exibição do usuário, este endereço é colocado no atributo src da tag img;
- Linha 8: exibimos o apelido do usuário, linkando para seu profile no twitter;
- Linha 21: transformamos a data retornada em string para time através da função strtotime() e depois formatamos ela com a função date().
3. Amigos / Seguidores
Para recuperar os amigos e os seguidores do usuário autenticado utilizamos, respectivamente, os recursos statuses/friends e statuses/followers.
É o mesmo esquema, utilizamos o método get() que nos retorna as informações de um recurso e então exibimos essas informações, como esses recursos retornam mais de um registro, precisamos utilizar o laço foreach().
<?php // @link http://dev.twitter.com/doc/get/statuses/friends $friends = $connection->get('statuses/friends', array('count' => 20)); ?> <p><em>Exibindo 20 amigos de <?php echo $usuario->friends_count ?>.</em> </p> <?php foreach ($friends as $friend): ?> <a href="http://twitter.com/<?php echo $friend->screen_name ?>"> <img src='<?php echo $friend->profile_image_url ?>' /> </a> <?php endforeach ?>
<?php // @link http://dev.twitter.com/doc/get/statuses/followers $followers = $connection->get('statuses/followers', array('count' => 20)); ?> <p><em>Exibindo 20 seguidores de <?php echo $usuario->followers_count ?>.</em></p> <?php foreach ($followers as $follower): ?> <a href="http://twitter.com/<?php echo $follower->screen_name ?>"> <img src='<?php echo $follower->profile_image_url ?>' /> </a> <?php endforeach ?>
4. Trends
Podemos recuperar também os trends topics, basta utilizarmos o recurso trends/:woeid. O :woeid é um parâmetro numérico que indica a localização dos trends (leias mais aqui), se informado 1, o retorno será os trends mundiais. O woeid do Brasil é o 23424768.
<?php // @link http://dev.twitter.com/doc/get/trends/:woeid $trends = $connection->get('trends/23424768'); ?> <ul> <?php foreach ($trends[0]->trends as $trend): ?> <li><a href="http://twitter.com/search/<?php echo $trend->query ?>"><?php echo $trend->name ?></a></li> <?php endforeach ?> </ul>
5. Atualizações de um usuário especifico
Para exibir as atualizações de um usuário especifico utilizamos o recurso statuses/user_timeline. Passamos como parâmetro o id ou screen_name do usuário.
<?php // @link http://dev.twitter.com/doc/get/statuses/user_timeline $timeline = $connection->get('statuses/user_timeline', array('screen_name' => 'faael')); ?>
6. Concluindo
Bom pessoal, infelizmente não é possível eu detalhar todos os recursos, até porque a documentação da API já faz isso, mas tentei pelo menos passar o conceito para acessar um recurso, com isso podemos acessar qualquer recurso disponível na API, basta apenas descobrir o nome do recurso e seus parâmetros na documentação da API.
Qualquer dúvida sobre um recurso que foi ou não abordado aqui, deixe um comentário. Estou aprendendo agora também utilizar a API do twitter, então qualquer sugestão, correção ou melhoria é bem vinda, ok?
Na próxima etapa iremos alterar informações do usuário autenticado. Até breve.
Abraços.