Usando a API de Procura do Twitter

Criar procuras automatizadas do Twitter

Twitter é indiscutivelmente um dos exemplos mais recentes e bem-sucedidos de rede de relacionamentos a aparecer na World Wide Web. O Twitter também tem seu próprio mecanismo de procura, o qual permite os usuários realizarem procuras por "tweets" por palavra-chave ou categoria, com uma API para facilitar procuras programáticas, atuar como serviço REST e retornar procuras no formato Atom. Descubra os conceitos básicos do uso da API de Procura do Twitter.

Brian M. Carey, Information Systems Consultant, Triangle Information Solutions

Photo of Brian CareyBrian Carey é um consultor de sistemas de informação especializado na arquitetura, design e implementação de aplicativos corporativos Java.



04/Ago/2009

O Twitter é um site de mídia de relacionamentos baseada na Web que permite você se comunicar com seguidores por meio de narrativas conhecidas como tweets por meio da GUI do Twitter. Os tweets são limitados a um máximo de 140 caracteres; uma limitação com base no estado de dispositivos móveis no período em que o Twitter foi desenvolvido. Mas esta é uma restrição bem-vinda, pois evita um spam desnecessário e confusão verbal dentro de um único tweet.

Acrônimos Usados Frequentemente

  • API: Interface de programação de aplicativos
  • GUI: Interface gráfica com o usuário
  • HTTP: Protocolo de Transporte de Hipertexto
  • REST: Representational State Transfer
  • RSS: Really Simple Syndication
  • URL: Localizador Uniforme de Recursos

Agora que você está familiarizado com o Twitter, é hora de seguir para o próximo nível familiarizando-se com a Procura do Twitter.

Como disse, o Twitter é uma organização on-line repleta de tweets, ou declarações breves que os usuários fazem aos seus seguidores. Com isso em mente, não seria excelente se você pudesse localizar uma porção de tweets relacionados a um determinado assunto?

Boas notícias. Com a Procura do Twitter, você pode. É possível procurar por palavras-chave, tópico, autor, idioma e uma variedade de outros critérios. Acesse http://search.twitter.com para ver isso em ação. Digite uma palavra-chave que deseja procurar (por exemplo, Membro do Grupo de Especialistas do Java™) e, em seguida, clique em Search. Voilàà! Uma série de tweets, dos mais recentes aos mais antigos, aparece na tela.

Mas como você pode procurar pelo tópico em vez de procurar por palavra-chave? Tenha em mente que os tweets específicos a um determinado tópico, contêm o nome do tópico precedido pelo símbolo de hash/sinal de libras (#). Por exemplo, um aficionado por Star Trek pode postar um tweet sobre algo do novo filme e dentro desse tweet incluir #startrek para permitir que as pessoas saibam que este tweet em específico é sobre Star Trek.

Para procurar por tweets pelo tópico, apenas inclua o nome do tópico (incluindo o símbolo de hash/sinal de libras) em sua procura de palavra-chave. Após o exemplo anterior, simplesmente acesse a página da Procura do Twitter, digite #startrek e, em seguida, clique em Search. Você verá uma lista de tweets específicos para Star Trek.

A API de Procura do Twitter

A API de Procura do Twitter é excelente para procuras manuais como um usuário. Mas seria excelente se você, como um notável desenvolvedor de software, pudesse procurar de forma programática por tweets com base no tópico ou palavra-chave?

Mais notícias fabulosas: é possível.

Como muitos outros excelentes aplicativos da Web, a Procura do Twitter fornece uma API REST para que seja possível procurar por tweets de modo automatizado. Antes de se aprofundar demais na API, entretanto, provavelmente é melhor abordar primeiro o conceito do REST para aqueles ainda não familiarizados.

O que é REST?

REST, para os propósitos deste artigo, permite que os desenvolvedores acessem informações e recursos usando uma invocação HTTP simples. Pense no REST desta forma: você pode obter dados específicos do domínio simplesmente apontando uma URL para um local específico. É também posspivel considerá-lo como um serviço da Web simplificado, mas se você diz isso muito alto entre as pessoas erradas, você poderá se envolver em um debate.

Portanto, a API de Procura do Twitter é um serviço REST que permite os usuários apontarem para uma determinada URL e recuperarem uma variedade de tweets que atendem aos critérios especificados na URL. Isso permite que você, como um desenvolvedor, aceite uma entrada dentro de um aplicativo da Web e consulte dinamicamente o Twitter com base nessa entrada, usando uma URL simples que codifica a entrada em um formato que a API compreende.

Introdução: Um Exemplo Simples

Considere o exemplo na Lista 1.

Lista 1. Um exemplo simples de uma procura no Twitter

http://search.twitter.com/search.atom?q=java

Essa consulta é muito fácil de analisar. O domínio é intuitivo: search.twitter.com. Isso é onde a API de Procura reside. Após a primeira barra aparece o serviço que você está executando—neste caso, a palavra search. Pode parecer peculiar necessitar da palavra search aqui, pois a palavra já está no nome do domínio, mas esta é uma tentativa da equipe do Twitter de manter as coisas consistentes com a API básica do Twitter, a qual usa várias funções.

Após search há uma extensão .atom. Isso significa simplesmente que os resultados da procura serão retornados no formato Atom. Os formatos adicionais que você pode usar são RSS (.rss) e JavaScript Object Notation (JSON—.json).

Em seguida, aparece o único parâmetro de pedido, q, que é a abreviação de query. E, em seguida, o valor desse parâmetro— neste caso, java.

Resumindo, a URL no exemplo de código acima diz à API de Procura do Twitter para procurar por todos os tweets recentes contendo a palavra java (sem distinção entre maiúsculas e minúsculas) e retornar os resultados no formato Atom.

Analisando a Saída

Agora, aponte seu navegador para o endereço na Lista 1. A saída real retornada para sua tela variará, dependendo de qual navegador e versão você usar. Para manter as coisas consistentes ao visualizar a origem, clique com o botão direito do mouse na tela e, em seguida, clique em Visualizar Origem. Você deverá ver algo semelhante à Lista 2.

Lista 2. Saída de uma procura simples (saída parcial)

        <?xml version="1.0" encoding="UTF-8"?>
        <feed xmlns:google="http://base.google.com/ns/1.0" xml:lang="en-US"
        xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
        xmlns="http://www.w3.org/2005/Atom"
        xmlns:twitter="http://api.twitter.com/">
          <id>tag:search.twitter.com,2005:search/java</id>
          <link type="text/html" rel="alternate"
        href="http://search.twitter.com/search?q=java"/>
          <link type="application/atom+xml" rel="self"
        href="http://search.twitter.com/search.atom?q=java"/>
          <title>java - Twitter Search</title>
          <link type="application/opensearchdescription+xml"
        rel="search" href="http://search.twitter.com/opensearch.xml"/>
          <link type="application/atom+xml" rel="refresh"
        href="http://search.twitter.com/search.atom?q=java&since_id=1990561514"/>
          <twitter:warning>since_id removed for pagination.</twitter:warning>
          <updated>2009-06-01T12:11:26Z</updated>
          <openSearch:itemsPerPage>15</openSearch:itemsPerPage>
          <link type="application/atom+xml" rel="next"
        href="http://search.twitter.com/search.atom?max_id=1990561514&page=2&q=java"/>
          <entry>
            <id>tag:search.twitter.com,2005:1990561514</id>
            <published>2009-06-01T12:11:26Z</published>
            <link type="text/html" rel="alternate"
        href="http://twitter.com/GailR/statuses/1990561514"/>
            <title>D/L latest upgrade for Google's Chrome
        Browser & like it. Faster, esp w Java</title>
            <content type="html">D/L latest upgrade for Google's Chrome
        Browser & like it. Faster, esp w <b>Java</b></content>
            <updated>2009-06-01T12:11:26Z</updated>
            <twitter:source><a href="http://twitter.com/">web</a></twitter:source>
            <twitter:lang>en</twitter:lang>
            <author>
              <name>GailR (Gail R)</name>
              <uri>http://twitter.com/GailR</uri>
            </author>
          </entry>
        ...
        ]>

Nota: Sua saída parecerá totalmente diferente no conteúdo, mas idêntica na estrutura. Isso porque executei minha procura em um momento completamente diferente do que você está executando a sua, portanto, os tweets recentes para mim serão diferentes dos tweets recentes para você. Lembre-se que a procura padrão é classificada dos tweets mais recentes até os mais antigos.

Segue uma análise sobre o código:

  • Observe que o elemento-raiz é feed. Esse é o padrão de acordo com a especificação Atom (consulte Recursos para obter links para mais informações sobre o Atom). O espaço de nomes que o Twitter usa é http://www.w3.org/2005/Atom, conforme especificado em uma estrutura no elemento-raiz.
  • O elemento title fornece uma sinopse da consulta—útil se você estiver apenas analisando a saída, mas pode não ter sido aquele que criou a consulta.
  • Os elementos link fornecem a URL para a própria consulta. Você pode conectar esses elementos em seu navegador e obter os mesmos resultados.
  • A seção entry representa um tweet. Embora apenas um esteja listado, para ser mais breve, na realidade, haverá muitos em sua saída. Observe que o título e o conteúdo são os mesmos no conteúdo real. Isso porque os tweets não possuem títulos, portanto, faz sentido que o título seja o próprio tweet.

    Lembre-se que o Atom é destinado a documentos de tipo de artigo, que geralmente possuem um título e um corpo principal. Como esse não é o caso com os tweets, os dois elementos contêm conteúdo idêntico.

  • O elemento id é requerido pelo Atom e é um Identificador Exclusivo Globalmente (GUID) para este tweet específico. Todos os tweets dentro do universo do Twitter possuirão IDs exclusivos para que possam ser referidos individualmente.
  • As datas e horários de published e updated também são idênticas. Isso faz sentido, pois o tweet nunca foi atualizado.
  • O primeiro elemento link fornece um link para este tweet único. Cole http://twitter.com/GailR/statuses/1990561514 em seu navegador e você verá esse mesmo tweet.
  • O elemento source (especificado como twitter:source pois ele está no espaço de nomes twitter ) fornece um link para a origem das informações que a API retornou. Neste caso, a origem é o próprio Twitter e é codificada como um link de URL.
  • O elemento lang (especificado como twitter:lang pois ele está no espaço de nomes twitter ) fornece uma referência para a linguagem usada neste tweet. Neste caso, o tweet está em inglês, portanto o código 639-1 da International Organization for Standardization (ISO) de en é usado.
  • A seção author fornece informações sobre o usuário do Twitter.

Criando Procuras Mais Complexas

O exemplo fornecido até então é razoavelmente rudimentar: é uma procura por apenas uma palavra. Entretanto, a API de Procura do Twitter fornece um conjunto poderoso de parâmetros de critérios e suporta consultas complexas.

Suponha, por exemplo, que você deseja procurar por tweets direcionados a um usuário específico. Na linguagem do tweet, os usuários direcionam seus tweets para um usuário específico sufixando um sinal de arroba (@) no nome de tela do usuário (por exemplo, @johnqpublic). Para propósitos de procura, você pode desconsiderar o sinal @ e simplesmente procurar por um tweet direcionado para um usuário específico. Consulte Lista 3.

Lista 3. Procurando por tweets direcionados a um usuário específico

http://search.twitter.com/search.atom?q=to%3Ajohnqpublic

Observe o %3A no meio da URL, em frente ao nome do usuário: essa é a codificação da URL para um ponto-e-vírgula (:). Ele segue o prefixo to , assim, é possível lê-lo da seguinte forma: to:johnqpublic.

Se você deseja procurar por tweets a partir de um usuário específico em vez de para um usuário específico, simplesmente substitua a palavra from por to na Lista 3.

Se você deseja procurar por um tópico específico, você apenas precisa codificar a tag de hash/sinal de libra para a URL. Esse código é %23, portanto uma procura da API por #startrek seria parecida com a Lista 4.

Lista 4. Procurando por tweets por tópico

http://search.twitter.com/search.atom?q=%23startrek

Observe que, como muitos outros mecanismos de procura, você pode usar AND e OR em suas procuras no Twitter. Isso é realizado colocando +AND+ e +OR+ entre os valores da consulta, respectivamente. Para obter um exemplo, consulte a Lista 5, a qual retorna todos os tweets recentes contendo um ou o outro#startrek ou #americanidol.

Lista 5. Procurando por tweets contendo um "#startrek" ou um "#americanidol"

http://search.twitter.com/search.atom?q=%23startrek+OR+%23americanidol

Você também tem a opção de especificar o parâmetro lang para que sua consulta retorne apenas resultados em um idiomas específico. O valor do parâmetro lang deve corresponder a um dos códigos de idiomas incluídos na especificação ISO 639-1. Consulte um exemplo na Lista 6.

Lista 6. Procurando por tweets sobre Star Trek em inglês

http://search.twitter.com/search.atom?lang=en&q=%23startrek

Você também pode restringir os resultados da procura com base na data. Use os parâmetros since e until para retornar tweets não mais antigos que uma determinada data ou não mais recentes que uma determinada data, respectivamente. Um exemplo está localizado na Lista 7.

Lista 7. Procurando por tweets sobre Star Trek desde 1 de maio de 2009

http://search.twitter.com/search.atom?q=%23startrek&since=2009-05-01

Conclusão

O Twitter é um fenômeno de interação social que facilita a troca de pequenos blogs entre partes interessadas. Ele aumentou sua popularidade ao longo do ano passado quando todos, desde carteiros até celebridades, passaram a trocar tweets regularmente.

Em conformidade com as regras não escritas da Internet, o Twitter também fornece um utilitário de procura para que as pessoas possam procurar por tweets com base em um conjunto de critérios específico. O utilitário de procura permite que procuras sejam realizadas manualmente, usando uma página da Web (da mesma forma que muitas pessoas usam o Google, por exemplo) ou por meio de uma invocação de REST.

O uso da API de Procura do Twitter permite que os desenvolvedores de aplicativos da Web automatizem as procuras do Twitter. Os desenvolvedores podem usá-la para exibir os tweets mais recentes e de conteúdo específico dentro de seus próprios aplicativos da Web (ou de seus clientes). Ela é um notável utilitário para aqueles interessados em coletar informações ainda mais específicas do domínio a partir da Internet.

Recursos

Aprender

Obter produtos e tecnologias

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Lotus, Software livre
ArticleID=423689
ArticleTitle=Usando a API de Procura do Twitter
publish-date=08042009