Acessando API do twitter via OAuth com PHP | Parte 2

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?

Download dos arquivos

Na próxima etapa iremos alterar informações do usuário autenticado. Até breve.
Abraços.