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.