Acessando API do twitter via OAuth com PHP

Neste artigo, pretendo mostrar como acessar a API do twitter via OAuth utilizando PHP, através de uma classe já pronta para simplificar o acesso. Veremos como registrar a aplicação na área de desenvolvedores do twitter e também como fazer a autenticação do usuário.

Por | @@faael Programação
<p class="p1"><span class="s1">Ol&aacute; pessoal, beleza? Neste artigo, pretendo mostrar como acessar a API do twitter via OAuth utilizando PHP, atrav&eacute;s de uma classe j&aacute; pronta para simplificar o acesso.</span>&nbsp;Veremos como registrar a aplica&ccedil;&atilde;o na &aacute;rea de desenvolvedores do twitter e tamb&eacute;m como fazer a autentica&ccedil;&atilde;o do usu&aacute;rio.</p> <p class="p2"><span class="s1">&nbsp;</span></p> <h2><span class="s1">1. Registrar aplica&ccedil;&atilde;o</span></h2> <p class="p1"><span class="s1">Para registrar uma aplica&ccedil;&atilde;o, &eacute; preciso entrar na &aacute;rea de desenvolvedores do twitter e clicar em Register an app. Agora basta preencher com as informa&ccedil;&otilde;es da aplica&ccedil;&atilde;o, em resumo:</span></p> <ul> <li>Application Name: O nome da aplica&ccedil;&atilde;o;</li> <li>Description: A descri&ccedil;&atilde;o da aplica&ccedil;&atilde;o;</li> <li>Application Website: O endere&ccedil;o onde o usu&aacute;rio pode acessar ou ver informa&ccedil;&otilde;es da aplica&ccedil;&atilde;o. Por exemplo: <a href="http://rafaelcouto.com.br/artigos/twitteroauth/"><span class="s2">http://rafaelcouto.com.br/artigos/twitteroauth/</span></a>;</li> <li>Organization: O autor da aplica&ccedil;&atilde;o, pode ser o nome da empresa ou seu nome;</li> <li>Application Type: Como a aplica&ccedil;&atilde;o vai ser na web, selecionamos a op&ccedil;&atilde;o Browser;</li> <li>Callback URL: Aqui vai o endere&ccedil;o que o usu&aacute;rio ser&aacute; redirecionado ap&oacute;s autenticar-se na aplica&ccedil;&atilde;o. Seguindo nosso artigo devemos apontar para o arquivo callback.php. Por exemplo, minha aplica&ccedil;&atilde;o fica no seguinte endere&ccedil;o: <a href="http://rafaelcouto.com.br/artigos/twitteroauth/"><span class="s2">http://rafaelcouto.com.br/artigos/twitteroauth/</span></a>, portanto o endere&ccedil;o de callback ser&aacute;: <a href="http://rafaelcouto.com.br/artigos/twitteroauth/callback.php"><span class="s2">http://rafaelcouto.com.br/artigos/twitteroauth/callback.php</span></a>. &Eacute; bom ressaltar que o endere&ccedil;o n&atilde;o pode ser localhost;</li> <li>Default Access type: Selecionamos a op&ccedil;&atilde;o Read &amp; Write, pois nesse artigo iremos buscar informa&ccedil;&otilde;es (read) e tamb&eacute;m atualizar informa&ccedil;&otilde;es (write);</li> <li>Application Icon: Selecionamos a imagem da aplica&ccedil;&atilde;o, voc&ecirc; pode selecion&aacute;-la mais tarde.</li> </ul> <p class="p1"><span class="s1">Ap&oacute;s registrada a aplica&ccedil;&atilde;o, na p&aacute;gina dos detalhes da aplica&ccedil;&atilde;o, guarde os seguintes valores: Consumer key e Consumer secret. Eles ser&atilde;o necess&aacute;rio para que o twitter reconhe&ccedil;a a aplica&ccedil;&atilde;o.</span></p> <p class="p2"><span class="s1">&nbsp;</span></p> <h2><span class="s1">2. Classe</span></h2> <p class="p1"><span class="s1">Depois de testar algumas classes, optei por escolher a do @abraham, pois, na minha opini&atilde;o, ela &eacute; mais flex&iacute;vel e cont&eacute;m menos bugs, apesar de estar em fase beta enquanto escrevo este artigo. Para baixar a classe basta acessar este link e escolher a &uacute;ltima vers&atilde;o. Al&eacute;m da classe, j&aacute; vem alguns arquivos b&aacute;sicos para autentica&ccedil;&atilde;o. Se voc&ecirc; preferir, pode baixar os mesmo arquivos no final do artigo, pois eles foram levemente adaptados e os coment&aacute;rios traduzidos.</span></p> <p class="p2"><span class="s1">&nbsp;</span></p> <h2><span class="s1">3. Configura&ccedil;&atilde;o (config.php)</span></h2> <p class="p2"><span class="s1">Primeiramente, vamos definir as informa&ccedil;&otilde;es de acesso de nossa aplica&ccedil;&atilde;o</span>&nbsp;&nbsp;</p> <p><code><?php<br />// Configurações da aplicação<br />define('CONSUMER_KEY', '');<br />define('CONSUMER_SECRET', '');<br />define('OAUTH_CALLBACK', '');</code></p> <p><strong>Linha 3 e 4:</strong> definimos a Consumer key e Consumer secret da aplica&ccedil;&atilde;o, para descobrir suas chaves basta ir at&eacute; os detalhes de sua aplica&ccedil;&atilde;o na &aacute;rea de desenvolvedores do twitter.</p> <p class="p1"><span class="s1"><strong>Linha 5:</strong> definimos a p&aacute;gina para onde o usu&aacute;rio ser&aacute; redirecionado ap&oacute;s autenticar-se na aplica&ccedil;&atilde;o. Este endere&ccedil;o deve ser o mesmo que est&aacute; cadastrado em sua aplica&ccedil;&atilde;o l&aacute; na &aacute;rea de desenvolvedores do twitter.</span></p> <p class="p1"><span class="s1"><br /></span></p> <h2><span class="s1">4. P&aacute;gina inicial (index.php)</span></h2> <p class="p2">Essa &eacute; a p&aacute;gina principal de nossa aplica&ccedil;&atilde;o, onde podemos colocar as informa&ccedil;&otilde;es e um bot&atilde;o para acessar a aplica&ccedil;&atilde;o.</p> <p class="p1"><code><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><br /></span><html><br />  <head><br />    <title>Acessando API do twitter via OAuth com PHP</title><br />    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><br />  </head><br />  <body><br />      <h1>Acessando API do twitter via OAuth com PHP</h1> <br />      <a href="redirect.php">Entrar</a><br />  </body><br /></html></code></p> <p class="p2">&nbsp;</p> <h2><span class="s1">5. Redirecionando para autentica&ccedil;&atilde;o (redirect.php)</span></h2> <p class="p1"><span class="s1">Essa p&aacute;gina ser&aacute; respons&aacute;vel por redirecionar o usu&aacute;rio para a p&aacute;gina de autentica&ccedil;&atilde;o da aplica&ccedil;&atilde;o.</span></p> <p class="p1"><code><?php<br />// Iniciando sessão<br />session_start(); <br /><br />// Incluindo classe e configurações<br />require_once('twitteroauth/twitteroauth.php');<br />require_once('config.php'); <br /><br />// Instanciando objeto para acessar a API<br />$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);<br /><br />// Requisitando tokens temporários para autenticação<br />$request_token = $connection->getRequestToken(OAUTH_CALLBACK);<br /><br />// Salvando tokens temporários na sessão<br />$_SESSION['oauth_token'] = $token = $request_token['oauth_token'];<br />$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret'];<br /><br />// Verifica a conexão com a API<br />switch ($connection->http_code) {<br />  // Se estiver conseguindo conectar<br />  case 200:<br />    // Construindo URL de autorização<br />    $url = $connection->getAuthorizeURL($token);<br />    // Redirecionando para a página de autorização do twitter<br />    header("Location: {$url}");<br />    break;<br />  default:<br />    // Se não estiver conseguindo conectar<br />    echo 'Não foi possível conectar-se ao twitter.';<br />}</code></p> <p>&nbsp;</p> <p class="p1"><span class="s1"><strong>Analisando o c&oacute;digo:</strong></span></p> <ul> <li><strong>Linha 10:</strong> criamos um objeto da classe passando ao construtor as informa&ccedil;&otilde;es de nossa aplica&ccedil;&atilde;o que foram definidas na configura&ccedil;&atilde;o.</li> <li><strong>Linha 13, 16 e 17:</strong> atrav&eacute;s do m&eacute;todo getAuthorizeURL() pegamos os tokens tempor&aacute;rios necess&aacute;rios para autentica&ccedil;&atilde;o, depois armazenamos os tokens na sess&atilde;o, pois utilizaremos eles no callback.</li> <li><strong>Linha 24 e 26:</strong> atrav&eacute;s do m&eacute;todo getAuthorizeURL() pegamos a p&aacute;gina de autoriza&ccedil;&atilde;o passando o token como par&acirc;metro e depois redirecionamos o usu&aacute;rio para esta p&aacute;gina.</li> </ul> <p>&nbsp;</p> <h2><span class="s1">6. Retornando da autentica&ccedil;&atilde;o (callback.php)</span></h2> <p class="p2"><span class="s1">&nbsp;</span>Essa p&aacute;gina ser&aacute; a respons&aacute;vel por receber a resposta da p&aacute;gina de autentica&ccedil;&atilde;o do twitter.</p> <p class="p1"><code><span class="s1"><?php<br /></span>// Iniciando sessão<br />session_start();<br /><br />// Incluindo classe e configurações<br />require_once('twitteroauth/twitteroauth.php');<br />require_once('config.php');<br /><br />// Instanciando objeto para acessar a API e já setando os tokens temporários<br />$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);<br /><br />// Requisitando os tokens que vão permitir o acesso do usuário, passando o verificador retornado pelo twitter<br />$access_token = $connection->getAccessToken($_REQUEST['oauth_verifier']);<br /><br />// Salvando os tokens de acesso na sessão<br />$_SESSION['access_token'] = $access_token;<br /><br />// Removendo tokens temporários da sessão<br />unset($_SESSION['oauth_token']);<br />unset($_SESSION['oauth_token_secret']);<br /><br />// Verifica a conexão com a API<br />if (200 == $connection->http_code)<br />    // Redirecionando usuário para página principal de nossa aplicação<br />    header('Location: app/painel.php');<br />else<br />    // Redirecionando para página responsável por limpar a sessão e redirecionar para página de acesso<br />    header('Location: ./clearsessions.php');</code></p> <p class="p1"><span class="s1"><strong>Analisando o c&oacute;digo:</strong></span></p> <ul> <li><strong>Linha 10:</strong> criamos um objeto da classe e al&eacute;m de passar as informa&ccedil;&otilde;es de nossa aplica&ccedil;&atilde;o, definimos os tokens tempor&aacute;rios que est&atilde;o na sess&atilde;o.</li> <li><strong>Linha 13 e 16: </strong>atrav&eacute;s do m&eacute;todo getAccessToken() pegamos os tokens que, finalmente, v&atilde;o permitir que o usu&aacute;rio permane&ccedil;a autenticado, perceba que passamos como par&acirc;metro o verificador que &eacute; retornado pelo twitter. Depois salvamos o token de acesso na sess&atilde;o para podermos valid&aacute;-lo em outras p&aacute;ginas.</li> <li><strong>Linha 25: </strong>se tudo ocorreu bem at&eacute; aqui, redirecionamos o usu&aacute;rio para a p&aacute;gina principal de nossa aplica&ccedil;&atilde;o.</li> </ul> <p class="p1">&nbsp;</p> <h2><span class="s1">7. Verificando (app/painel.php)</span>&nbsp;</h2> <p class="p1"><code><?php<br />// Iniciando sessão<br />session_start(); <br /><br />// Incluindo classe e configurações<br />require_once('../twitteroauth/twitteroauth.php');<br />require_once('../config.php');<br /><br />// Se os tokens de acesso não estiverem setados<br />if (!isset($_SESSION['access_token']))<br />    // Redirecionando para página responsável por limpar a sessão e redirecionar para página de acesso<br />    header('Location: ../clearsessions.php');<br /><br />// Armazenando tokens de acesso<br />$access_token = $_SESSION['access_token'];<br /><br />// Instanciando objeto para acessar a API<br />$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token['oauth_token'], $access_token['oauth_token_secret']);</code></p> <p class="p1"><span class="s1">Nas p&aacute;ginas de nossa aplica&ccedil;&atilde;o, basta verificar se o usu&aacute;rio est&aacute; autenticado:</span></p> <ul> <li><strong>Linha 10 e 12:</strong> Se os tokens de acesso n&atilde;o estiverem definidos, ou seja, o usu&aacute;rio n&atilde;o se autenticou, redirecionamos para p&aacute;gina clearsessions.php que ser&aacute; explicada adiante.</li> <li><strong>Linha 15:</strong> armazenamos os tokens da sess&atilde;o em um vetor para simplificar o acesso.</li> <li><strong>Linha 18:</strong> finalmente, criamos o nosso objeto final passando as informa&ccedil;&otilde;es da aplica&ccedil;&atilde;o e os tokens de acesso. Com esse objeto podemos acessar as informa&ccedil;&otilde;es do twitter do usu&aacute;rio autenticado como seus tweets, followers, friends, mentions, etc. Podemos tamb&eacute;m, seguir algu&eacute;m, enviar um tweet, enfim, todas as funcionalidades dispon&iacute;veis na API do twitter.</li> </ul> <p class="p1">&nbsp;</p> <h2><span class="s1">8. Finalizando sess&atilde;o (clearsessions.php)</span></h2> <p class="p1"><code><?php<br />// Iniciando sessão<br />session_start();<br /><br />// Limpando sessão<br />session_destroy();<br /><br />// Redirecionando para página de acesso<br />header('Location: ./index.php');</code></p> <p class="p1"><span class="s1">Por fim, este arquivo &eacute; respons&aacute;vel por finalizar a sess&atilde;o do usu&aacute;rio autenticado, redirecionando ele para a p&aacute;gina de autentica&ccedil;&atilde;o de nossa aplica&ccedil;&atilde;o.</span></p> <p class="p1">&nbsp;</p> <h2><span class="s1">9. Concluindo a primeira parte</span></h2> <p class="p1"><span class="s1">Bom pessoal, o objetivo desta primeira parte foi conclu&iacute;do. Na pr&oacute;xima etapa vamos come&ccedil;ar a &ldquo;brincar&rdquo; com as funcionalidades da API. Creio que est&aacute; primeira parte de autentica&ccedil;&atilde;o seja a que est&aacute; confundindo mais o pessoal, pois antes n&atilde;o era necess&aacute;rio todos esses processos.</span>&nbsp;</p> <ul> <li><a href="https://www.oficinadanet.com.br/imagens/post/9135/twitteroauth.rar"><span style="text-decoration: underline;">Download dos arquivos da primeira parte</span></a></li> </ul> <p>&nbsp;</p> <h2>Parte 2:</h2> <p>Nesta segunda parte vamos mostrar como voc&ecirc; faz para buscar informa&ccedil;&otilde;es no Twitter e mostrar na tela.&nbsp;Para buscar as informa&ccedil;&otilde;es no twitter, basta utilizar o m&eacute;todo get() de nossa classe. O primeiro par&acirc;metro &eacute; o recurso que ser&aacute; utilizado. Para saber os recursos da API do twitter &eacute; s&oacute; acessar a documenta&ccedil;&atilde;o da API.</p> <p class="p1"><span class="s1"><span style="text-decoration: underline;"><a rel="nofollow" href="http://rafaelcouto.com.br/artigos/twitteroauth/" target="_blank">Confira a aplica&ccedil;&atilde;o em funcionamento</a></span></span></p> <p class="p2"><span class="s1">&nbsp;</span></p> <h2><span class="s1">10. Informa&ccedil;&otilde;es do usu&aacute;rio autenticado</span></h2> <p class="p1"><span class="s1">Para descobrir as informa&ccedil;&otilde;es do usu&aacute;rio autenticado, podemos utilizar o recurso <strong>account/verify_credentials</strong>.</span></p> <p class="p1"><code><?php<br />// @link http://dev.twitter.com/doc/get/account/verify_credentials<br />$usuario = $connection->get('account/verify_credentials'); <br />?></code></p> <p class="p1">As informa&ccedil;&otilde;es retornadas pela API s&atilde;o alocadas no objeto $usuario, desse modo podemos exibir todas propriedades do objeto e seus respectivos valores atrav&eacute;s da fun&ccedil;&atilde;o <strong>print_r()</strong>.</p> <p class="p1"><code><?php<br />echo '<pre>', print_r($usuario, true), '</pre>'<br />?></code></p> <p class="p1">No caso se eu estiver autenticado com meu twitter (@faael), o c&oacute;digo acima ir&aacute; retornar:</p> <p class="p1"><code>stdClass Object<br />(<br />    [verified] => <br />    [id_str] => 30599789<br />    [notifications] => <br />    [profile_text_color] => 333333<br />    [url] => http://faael.net<br />    [description] => Aficionado por tecnologia, principalmente em relação a web.<br />    [default_profile] => 1<br />    [profile_sidebar_fill_color] => DDEEF6<br />    [default_profile_image] =><br />    [following] =><br />    [profile_background_tile] => <br />    [profile_image_url] => http://a0.twimg.com/profile_images/887089721/IMG0023A_normal.jpg<br />    [location] => Brasil - Bauru, SP<br />    [contributors_enabled] => <br />    [time_zone] => Brasilia<br />    [profile_link_color] => 0084B4<br />    [screen_name] => faael<br />    [follow_request_sent] => <br />    [profile_sidebar_border_color] => C0DEED<br />    [followers_count] => 121<br />    [show_all_inline_media] => <br />    [geo_enabled] => <br />    [favourites_count] => 48<br />    [created_at] => Sun Apr 12 04:20:49 +0000 2009<br />    [protected] => <br />    [profile_use_background_image] => 1<br />    [name] => Rafael Couto<br />    [is_translator] => <br />    [lang] => en<br />    [friends_count] => 219<br />    [profile_background_color] => C0DEED<br />    [id] => 30599789<br />    [listed_count] => 22<br />    [statuses_count] => 115<br />    [profile_background_image_url] => http://a3.twimg.com/a/1302724321/images/themes/theme1/bg.png<br />    [utc_offset] => -10800<br />)</code></p> <p class="p1">&nbsp;</p> <p class="p1"><span class="s1">O resultado acima &eacute; apenas pra n&oacute;s sabermos os nomes das propriedades, pois assim podemos exibir apenas as que interessam para nossa aplica&ccedil;&atilde;o.</span></p> <p class="p1"><span class="s1"><span class="img_editor"><img src="https://www.oficinadanet.com.br/imagens/post/9135/aplicacao.png" alt="" /></span><br /></span></p> <p class="p1"><code><img src='<?php echo $usuario->profile_image_url ?>' /><br /><br /><h3><?php echo $usuario->name ?></h3><br /><br /><big><strong><?php echo '@' . $usuario->screen_name ?></strong></big><br /><span class="location"><?php echo $usuario->location ?></span><br /><p><br />    <em><?php echo $usuario->description ?></em> <br /><br />    <a href='<?php echo $usuario->url ?>'><?php echo $usuario->url ?></a><br /></p></code></p> <p class="p1">&nbsp;</p> <h2><span class="s1">11. Como pegar as atualiza&ccedil;&otilde;es dos amigos</span>&nbsp;</h2> <p class="p1"><span class="img_editor"><img src="https://www.oficinadanet.com.br/imagens/post/9135/atualizacoes.png" alt="" /></span></p> <p class="p1"><span class="s1">Para recuperar as atualiza&ccedil;&otilde;es dos amigos do usu&aacute;rio autenticado, podemos utilizar o recurso <strong>statuses/home_timeline</strong> ou <strong>statuses/friends_timeline</strong>, a diferen&ccedil;a &eacute; que o &uacute;ltimo n&atilde;o mostra os retweets.</span></p> <p class="p1"><code><?php<br />// @link http://dev.twitter.com/doc/get/statuses/home_timeline<br />$timeline = $connection->get('statuses/home_timeline', array('count' => 5));<br />?></code></p> <p class="p1"><span class="s1">O m&eacute;todo<strong> get() </strong>aceita como segundo par&acirc;metro um vetor com os par&acirc;metros do recurso. Por exemplo, podemos limitar a quantidade de registros que ser&atilde;o retornados passando o par&acirc;metro count. Para saber os par&acirc;metros de um recurso, basta ver na documenta&ccedil;&atilde;o da API.</span></p> <p class="p1"><code><?php foreach ($timeline as $tweet): ?><br />    <div class="tweet"><br />        <img src='<?php echo $tweet->user->profile_image_url ?>' /> <br />        <span class="usuario"><br />            <big><a href="http://twitter.com/<?php echo $tweet->user->screen_name ?>/"><?php echo $tweet->user->screen_name ?></a></big> <br />            <?php echo $tweet->user->name ?><br />        </span><br />        <br /><br />        <span class="texto"> <br />           <?php echo $tweet->text ?><br />        </span>   <br />        <br /><br />        <span class="data"><br />            <?php echo date('d/m/Y H:i:s', strtotime($tweet->created_at)) ?><br />        </span>    <br />    </div><br /><?php endforeach ?></code></p> <p class="p1"><span class="s1"><strong>Alguns detalhes:</strong></span></p> <ul> <li><strong>Linha 1:</strong> Como um usu&aacute;rio pode ter mais de uma atualiza&ccedil;&atilde;o de amigos, percorremos a $timeline utilizando o la&ccedil;o foreach(). Portanto, tudo que est&aacute; dentro do foreach ser&aacute; exibido para cada atualiza&ccedil;&atilde;o;</li> <li><strong>Linha 5:</strong> acessamos a propriedade profile_image_url do objeto user (usu&aacute;rio que enviou o tweet), que nos retorna o caminho da imagem de exibi&ccedil;&atilde;o do usu&aacute;rio, este endere&ccedil;o &eacute; colocado no atributo src da tag img;</li> <li><strong>Linha 8: </strong>exibimos o apelido do usu&aacute;rio, linkando para seu profile no twitter;</li> <li><strong>Linha 21:</strong> transformamos a data retornada em string para time atrav&eacute;s da fun&ccedil;&atilde;o strtotime() e depois formatamos ela com a fun&ccedil;&atilde;o date().</li> </ul> <p>&nbsp;</p> <h2><span class="s1">12. Amigos / Seguidores</span></h2> <p class="p2"><span class="img_editor"><img src="https://www.oficinadanet.com.br/imagens/post/9135/seguindo.png" alt="" /></span></p> <p class="p1"><span class="s1">Para recuperar os amigos e os seguidores do usu&aacute;rio autenticado utilizamos, respectivamente, os recursos <strong>statuses/friends</strong> e <strong>statuses/followers</strong>.</span></p> <p class="p2"><span class="s1">&nbsp;<span class="img_editor"><img src="https://www.oficinadanet.com.br/imagens/post/9135/seguidores.png" alt="" /></span></span></p> <p class="p1"><span class="s1">&Eacute; o mesmo esquema, utilizamos o m&eacute;todo <strong>get() </strong>que nos retorna as informa&ccedil;&otilde;es de um recurso e ent&atilde;o exibimos essas informa&ccedil;&otilde;es, como esses recursos retornam mais de um registro, precisamos utilizar o la&ccedil;o <strong>foreach()</strong>.</span></p> <p class="p1"><span class="s1"><strong>Pegando os que voc&ecirc; segue:</strong></span></p> <p class="p1"><code><?php<br />// @link http://dev.twitter.com/doc/get/statuses/friends<br />$friends = $connection->get('statuses/friends', array('count' => 20)); ?><br /><p><em>Exibindo 20 amigos de <?php echo $usuario->friends_count ?>.</em> </p><br /><?php foreach ($friends as $friend): ?><br />    <a href="http://twitter.com/<?php echo $friend->screen_name ?>"><br />        <img src='<?php echo $friend->profile_image_url ?>' /><br />    </a> <br /><?php endforeach ?></code></p> <p class="p1">&nbsp;</p> <p class="p1"><strong>Pegando quem lhe segue:</strong></p> <p class="p1"><code><?php<br />// @link http://dev.twitter.com/doc/get/statuses/followers<br />$followers = $connection->get('statuses/followers', array('count' => 20)); ?><br /><p><em>Exibindo 20 seguidores de <?php echo $usuario->followers_count ?>.</em></p><br /><?php foreach ($followers as $follower): ?><br />    <a href="http://twitter.com/<?php echo $follower->screen_name ?>"><br />        <img src='<?php echo $follower->profile_image_url ?>' /><br />    </a><br /><?php endforeach ?></code></p> <p class="p1">&nbsp;</p> <h2><span class="s1">13. Trends</span></h2> <p class="p1"><span class="img_editor"><img src="https://www.oficinadanet.com.br/imagens/post/9135/trends.png" alt="" /></span></p> <p class="p1"><span class="s1">Podemos recuperar tamb&eacute;m os trends topics, basta utilizarmos o recurso <strong>trends/:woeid</strong>. O :woeid &eacute; um par&acirc;metro num&eacute;rico que indica a localiza&ccedil;&atilde;o dos trends (leias mais aqui), se informado 1, o retorno ser&aacute; os trends mundiais. O woeid do Brasil &eacute; o 23424768.</span></p> <p class="p1"><code><?php<br />// @link http://dev.twitter.com/doc/get/trends/:woeid<br />$trends = $connection->get('trends/23424768'); ?><br /><ul><br />    <?php foreach ($trends[0]->trends as $trend): ?><br />        <li><a href="http://twitter.com/search/<?php echo $trend->query ?>"><?php echo $trend->name ?></a></li><br />    <?php endforeach ?><br /></ul></code></p> <p class="p1">&nbsp;</p> <h2>14. Atualiza&ccedil;&otilde;es de um usu&aacute;rio especifico</h2> <p class="p1">Para exibir as atualiza&ccedil;&otilde;es de um usu&aacute;rio especifico utilizamos o recurso statuses/user_timeline. Passamos como par&acirc;metro o id ou screen_name do usu&aacute;rio.</p> <p class="p1"><code><?php<br />// @link http://dev.twitter.com/doc/get/statuses/user_timeline<br />$timeline = $connection->get('statuses/user_timeline', array('screen_name' => 'faael')); <br />?></code></p> <p class="p1">&nbsp;</p> <h2>15. Concluindo</h2> <p class="p1">Bom pessoal, infelizmente n&atilde;o &eacute; poss&iacute;vel eu detalhar todos os recursos, at&eacute; porque a documenta&ccedil;&atilde;o da API j&aacute; faz isso, mas tentei pelo menos passar o conceito para acessar um recurso, com isso podemos acessar qualquer recurso dispon&iacute;vel na API, basta apenas descobrir o nome do recurso e seus par&acirc;metros na documenta&ccedil;&atilde;o da API.</p> <p class="p1">Qualquer d&uacute;vida sobre um recurso que foi ou n&atilde;o abordado aqui, deixe um coment&aacute;rio. Estou aprendendo agora tamb&eacute;m utilizar a API do twitter, ent&atilde;o qualquer sugest&atilde;o, corre&ccedil;&atilde;o ou melhoria &eacute; bem vinda, ok?</p> <p class="p1" style="text-align: center;">Download dos arquivos<br /><a href="https://www.oficinadanet.com.br/imagens/post/9135/twitteroauth-2.rar"><img src="https://www.oficinadanet.com.br/imagens/post/9135/botaodownloadoficina.jpg" alt="" /></a></p>

Mais sobre: especial_twitter, php, oauth
Share Tweet
Mais compartilhados
Comentários
  • ASSINE NOSSA NEWSLETTER

    As melhores publicações no
    seu e-mail

  • Preencha para confirmar