Tutorial da nova API do Twitter

On 16 de outubro de 2013 by Bernardo Reis

API Twitter

Introdução

Em Junho, o Twitter retirou sua API 1.0 e passou a utilizar sua nova API, a 1.1, que passou a necessitar de processos de autentificação para funcionar corretamente, mesmo que seja apenas para acessar informações públicas dos usuários.

Para começar a usar a nova API, é necessário criar uma conta de desenvolvedor no Twitter, informando alguns dados sobre seu aplicativo que está sendo desenvolvido, inclusive, a maneira que ele pretende utilizar a API.

Neste tutorial, serpa ensinado como criar uma aplicação de busca de tweets com a nova API.

Criando conta do Twitter e habilitando uma aplicação

Primeiramente, vá para o site do Twitter (https://twitter.com/), e crie uma conta, caso ainda não possua uma. Em seguida, vá ao site de desenvolvimento do Twitter (https://dev.twitter.com/) e faça login. Sua foto de perfil aparecerá no canto superior direito da tela. Passe o mouse por cima da foto e um menu irá abrir. Clique em “My applications”. Na nova página, clique em “Create new application”. A seguinte página será aberta:

appCreate

Preencha-a e finalize o cadastro de sua aplicação. Assim que terminar, será redirecionado para a página de sua aplicação, que mostrará detalhes sobre a mesma, permitindo também, em suas abas, alterar as configurações de sua aplicação, como se ela fará apenas leituras ou também trabalhará com escritas (por padrão, as aplicações são criadas como “somente leitura”.

Na página de detalhes da sua aplicação, vá para a parte inferior da página para criar seu Access Token. Você deverá ver uma dela assim:

appKeysGenerated

Os campos “Consumer key”, “Consumer secret”, “Access token” e “Access token secret” são os que devem ser guardados para utilizar em sua aplicação como autentificação e, consequentemente, correto funcionamento da mesma.

API auxiliar para utilização do Twitter

Existe uma API auxiliar para Java que facilitará muito o uso da nova API do Twitter em nossas aplicações. Seu nome é Twitter4J (http://twitter4j.org/en/index.html). Faça o download da biblioteca e importe-a em seu projeto Java ou Android.

 

Criação do código utilizando o Twitter4J

Abaixo uma classe estática criada para auxiliar na manipulação do Twitter. As Strings iniciais da classe devem ser alteradas pelos códigos específicos de sua aplicação (Os códigos no exemplo abaixo são inválidos).

[code language=”java” collapse=”false”]
public class TwitterUtils {

       //Editáveis por aplicativo
       private static final String token = "82434245-nNA3EanbiSmwyCjpaCjkOMtMO8lMkB1F0mOCp6U";
       private static final String tokenSecret = "CFirBvYg7mQ6kTQqcQnHXB1ujwxUpYf20qWTa774";
       private static final String consumerKey = "OkfuWgfGeohD38jLEPRog";
       private static final String consumerSecret = "B53jkkBKRm6dvQDMFvhPa22rgj9lJcAbbgbTF7FIFA";

       //Site para redirecinamento de tweets
       private static final String tweetLink = "https://twitter.com/tweet/status/";

public static Twitter twitter = null;
      public static Twitter createTwitter(){
if (twitter == null) {
twitter = TwitterFactory.getSingleton();
                     AccessToken accessToken = new AccessToken(token, tokenSecret);
                     twitter.setOAuthConsumer(consumerKey, consumerSecret);
                     twitter.setOAuthAccessToken(accessToken);
              }
              return twitter;
       }

       public static ArrayList<Tweet> search(Twitter twitter, String queryString, int tweetCount){
              try{
                   Query query = new Query(queryString);
                   query.setCount(tweetCount);
                   QueryResult result = twitter.search(query);
                   ArrayList<Tweet> tweets = new ArrayList<Tweet>();
                   for (Status status : result.getTweets()) {
                       int id = (int) status.getId();
                       String user = status.getUser().getName();
                       String text = status.getText();
                       String image = status.getUser().getProfileImageURL();
                       String link = tweetLink + status.getId(); // Cria URL para o tweet na web.
                       Tweet tweet = new Tweet(id, user, text, image, link);
                       tweets.add(tweet);
                   }
                   return tweets;
               } catch(TwitterException e){
                   System.out.println("Erro no twitter");
                   e.printStackTrace();
                   return new ArrayList<Tweet>();
               } catch(NullPointerException e){
                   System.out.println("Provavelmente Twitter nulo sendo passado para o método search.");
                   e.printStackTrace();
                   return new ArrayList<Tweet>();
               } catch(IllegalArgumentException e){
                   System.out.println("Erro de log.");
                   e.printStackTrace();
                   return new ArrayList<Tweet>();
               }
}
}[/code]

A classe Tweet foi implementada para armazenar os seguintes dados:

[code language=”java” collapse=”false”]
int id;
String user;
String text;
String image;
String link;
[/code]

Para utilizar o código acima, simplesmente crie um objeto Twitter e um ArrayList de Tweet’s para armazenar o resultado, definindo as palavras-chave da pesquisa e o número de tweets que se deseja recuperar:

[code language=”java” collapse=”false”]
String tweetWords = "iMobilis";
int nTweets = 25;
Twitter twitter = TwitterUtils.createTwitter();
ArrayList<Tweet> data = TwitterUtils.search(twitter, tweetWords, nTweets);
[/code]

O código acima procura por 25 tweets com a palavra iMobilis no Twitter e entregará o resultado em um ArrayList de Tweet’s, de onde é possível recuperar as informações de cada Tweet.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *