Arquivo de outubro de 2009

A API do Yahoo! meme

quinta-feira, 15 de outubro de 2009

Em outubro de 2009 o Yahoo! liberou a versão beta do meme (http://meme.yahoo.com). Para quem não sabe o meme é um serviço de microblog semelhante ao Twitter (http://twitter.com), porém no meme podemos postar vídeos, fotos, links, textos, arquivos de música e não temos um limite de 140 caracteres nas mensagens.

Até a data da escrita desse artigo, o serviço não era popular e não tinham ferramentas para acesso ao serviço, tudo tinha que ser pelo próprio site do meme. Como o objetivo do artigo é ser técnico não entraremos em detalhes do serviço e sim falaremos da API.

Introdução

Para usar esta API, você precisa conhecer primeiramente um pouco sobre como o Yahoo! trabalha com suas APIs. O Yahoo! usa a linguagem YQL ( Yahoo Query Language), nada muito óbvio não? O YQL é uma linguagem baseada na mesma estrutura do SQL (Structure Query Language), para essa API do meme passamos os comandos via uma requisição HTTP, REST. O Yahoo! fornece suporte a alguns linguagens, entre elas Flash, Java, JavaScript, .NET, PHP, Python, Ruby e Silverlight, neste artigo não usaremos nenhuma linguagem, apenas mostraremos como chamar as querys e gerar as chamadas REST.

Abaixo temos um exemplo de como escrever uma query usando o YQL, está query é apenas um exemplo e não faz parte da API do meme. O resultado dela é um XML com todas as “tabelas” que podemos usar, podemos também fazer o retorno ser via JSON ao invés de XML. No artigo será trabalhado com XML.

Comando: show tables

Requisição REST gerada: https://query.yahooapis.com/v1/public/yql?q=show%20tables&format=xml

Para testar mais comandos do YQL, sugiro que acesse o console de demonstração do Yahoo! https://developer.yahoo.com/yql/console/. Apenas para comunicar que para muitas coisas, precisaremos estar autenticados com a nossa conta do Yahoo!

Agora que já sabemos um pouco como a API funciona, vamos colocar a mão na massa e trazer alguns resultados mais reais do meme. A conta usada para os exemplos de requisições do meme será esta: paulofernandesj.

Tela Console Yahoo!

Tela Console Yahoo!

O que posso fazer?

Não diferente de algumas APIs do Google, o Yahoo! também pede para que você obtenha uma chave para acesso a API. Para obter essa chave acesse a central dos desenvolvedores http://developer.yahoo.com/, isso caso queira criar um aplicativo. O objetivo deste artigo é mostrar as funcionalidades da API do meme através do console fornecido pelo próprio Yahoo!

Agora listaremos diversas querys que podem ser executadas para retornarem os resultados, acrescentaremos uma breve descrição sobre o resultado obtido. Uma coisa que precisamos deixar bem claro antes de iniciarmos o processo de explicação das querys é que nelas sempre constará o valor VNDIRCXTU6SOYRG2CTBU2D7SCY para o campo owner_guid, owner_guid é o campo pelo qual conseguimos trazer as informações de determinada conta do meme, deste que está conta não esteja privada no modo de visualização. Para trazer os resultados da sua conta, basta usar o primeiro comando abaixo e obterá o XML com os valores da sua conta, bastando apenas encontrar o campo owner_guid e começar a utilizar esta conta para as próximas consultas. Outra forma de obter os dados nas querys é colocar em owner_guid o valor me, sem aspas, porém este parâmetro trará somente as configurações da sua conta, veja os exemplos abaixo. O padrão para os itens abaixo será:

O que o comando faz

query YQL

Chamada REST

Explicação mais detalhada (Caso necessário)

Só mais um fato importante que será muito útil para seu aprendizado. O Yahoo! disponibiliza um comando chamado desc <tabela>, que nada mais é do que a descrição da tabela que queremos usar. Observe o comando abaixo e teste-o na sua página do console para ver exatamente o seu retorno. Para a informação abaixo eu executei o comando desc meme.info.

<?xml version=”1.0″ encoding=”UTF-8″?>

<query xmlns:yahoo=”http://www.yahooapis.com/v1/base.rng” yahoo:count=”1″ yahoo:created=”2009-10-13T08:36:40Z” yahoo:lang=”en-US” yahoo:updated=”2009-10-13T08:36:40Z” yahoo:uri=”https://query.yahooapis.com/v1/yql?q=desc+meme.info”>

<diagnostics>

<publiclyCallable>true</publiclyCallable>

<user-time>1</user-time>

<service-time>0</service-time>

<build-version>3431</build-version>

</diagnostics>

<results>

<table security=”ANY”>

<meta>

<author>Yahoo! Inc.</author>

<documentationURL/>

<sampleQuery>SELECT * FROM meme.info WHERE owner_guid=me</sampleQuery>

</meta>

<request>

<select>

<key name=”owner_guid”/>

<key name=”name”/>

</select>

</request>

</table>

</results>

</query>

O interessante nesse comando é que ele mostra muita coisa da estrutura da tabela, como por exemplo, o nível de segurança da tabela, exemplos de como podem ser feita as consultas com essa tabela, quais parâmetros podem ser passados no where.

Exemplos

Retornando as informações da sua conta através do owner_guid=me.

SELECT * FROM meme.info WHERE owner_guid=me

https://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20meme.info%20WHERE%20owner_guid%3Dme&format=xml

Se reparar no retorno, poderá pegar a sua chave do Yahoo! Acesse a estrutura da árvore do XML da seguinte forma result>meme>guid, dentro desse campo estará a chave para começar a consultar, repare que para consultar usando me, não precisamos de aspas simples, porém para a próximas consultas, usaremos o guid e colocaremos as consultas usando aspas simples.

_________________________________________________________________

Retornando os followers de uma conta pública, através do owner_guid da conta

SELECT * FROM meme.followers

WHERE owner_guid=’VNDIRCXTU6SOYRG2CTBU2D7SCY’

https://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20meme.followers%20WHERE%20owner_guid%3D’VNDIRCXTU6SOYRG2CTBU2D7SCY’&format=xml

O retorno dessa chamada REST retornará os dados dos meus followers, com essa informação eu consigo capturar outros dados desses follower, como por exemplo seus posts. Apenas para lembrar que o Yahoo! limita essa chamada a 10 followers para não retornar um XML muito extenso, dando trabalho para processar a requisição.

_________________________________________________________________

Retornando os following de uma conta pública, através do owner_guid da conta

SELECT * FROM meme.following

WHERE owner_guid=’VNDIRCXTU6SOYRG2CTBU2D7SCY’

https://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20meme.following%20WHERE%20owner_guid%3D’VNDIRCXTU6SOYRG2CTBU2D7SCY’&format=xml

O retorno dessa chamada é bem parecido com o retorno dos followers a única diferença é que ele retorna os followings.

_________________________________________________________________

Retornando os post de uma conta pública, através do owner_guid da conta

SELECT * FROM meme.posts

WHERE owner_guid=’VNDIRCXTU6SOYRG2CTBU2D7SCY’;

https://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20meme.posts%20WHERE%20owner_guid%3D’VNDIRCXTU6SOYRG2CTBU2D7SCY’%3B&format=xml

Esta chamada retorna os posts do usuário que foi passado como parâmetro, nesse retorno ele traz os comentários, data que foi postado, conteúdo e mais algumas informações.

_________________________________________________________________

Inserindo um novo post em uma conta autenticada

INSERT INTO meme.user.posts (type, content) VALUES (”text”, “testando a API do meme”)

https://query.yahooapis.com/v1/yql?q=INSERT%20INTO%20meme.user.posts%20(type%2C%20content)%20VALUES%20(%22text%22%2C%20%22testando%20a%20API%20do%20meme%22)&format=xml

Este é uma das chamadas mais interessantes, pois ela acessa a sua conta e publica um post. Após a chamada, no próprio retorno ele traz os dados o status da postagem e os dados das informações do post, seria como se postasse e já listasse aquele post.

_________________________________________________________________

Excluindo um post de uma conta autenticada

DELETE FROM meme.user.posts WHERE pubid = “1aR2FNB”

https://query.yahooapis.com/v1/yql?q=DELETE%20FROM%20meme.user.posts%20WHERE%20pubid%20%3D%20%221aR2FNB%22&format=xml

Com esta chamada você consegue apagar um post, para isso precisa estar autenticado na conta e saber o pubid (string única do post). Para saber o pubid, basta usar o comando que lista os posts. Semelhante ao método para postagem ele retorna o status da exclusão, caso tente excluir um post, a chamada REST retorna um erro (undefined).

_________________________________________________________________

Existem outras chamadas que podem ser feitas, como por exemplo, seguir algum usuário, deixar de seguir alguém, e algumas mais.

Sempre que estiver em dúvida utiliza o comando desc <tabela>. Ele é de grande utilidade no trabalho com a API do Yahoo!

Conclusão

Alguns dos comandos apresentados sozinhos não fazem muito sentido, mas a combinação deles pode gerar um resultado bem legal, como por exemplo, criar uma paginação dos followers, combinando a consulta das informações do usuário (tabela meme.info ) com a listagem dos followers.

O objetivo deste artigo foi divulgar o YQL e mostrar os comandos da API do meme. Este artigo é bem básico, e mostra somente como realizar as chamadas aos métodos, não especificamos nenhuma linguagem, pois as chamadas são iguais para todas que façam chamadas via REST.

Escolha a linguagem que tem mais facilidade e teste essas chamadas, veja o poder que as chamadas REST e o YQL proporcionam.

Colocando sua empresa no Google Maps

domingo, 11 de outubro de 2009

O Google tem diversos serviços que muitos de nós desconhecemos. Neste artigo será explicado um pouco sobre o Google Local Business Center. Este serviço permite que sua empresa e o endereço dela apareçam no Google, tanto na página inicial quando no Google Maps, preferencialmente no Google Maps. Para testar o serviço acesse http://www.google.com.br/local

Como Fazer

A primeira coisa que deve ser feita é o login com sua conta Google. Após esse processo para facilitar a localização do serviço, digite na busca do Google “Local Business Center” ou se preferir acesse esse link: http://www.google.com/local/add.

A sua tela deverá ser bem parecida com a imagem abaixo.

Tela Inicial

Tela Inicial

Clique no botão “Adicionar Nova Empresa” no lado direito da página. Preencha todos os campos que são solicitados, ao lado você consegue ter uma prévia do endereço localizado e dos dados digitados. Selecione até 5 categorias que mais descrevem a área de atuação de sua empresa. Após preencher todos os campos clique em “Próximo”.

Dados a serem digitados

Dados a serem digitados

Neste momento especifique o horário de funcionamento, opções de pagamento, fotos, vídeos e informações adicionais, tais como: Estacionamento, Lanchonete e o que mais a empresa tiver para oferecer aos clientes. Você também pode corrigir a localização no mapa, caso não tenha ficado exatamente onde sua empresa esta localizada, clique em “Enviar” para salvar as informações.

Dados adicionais

Dados adicionais

Agora que os dados foram enviados para o Google, você precisa confirmar todas as informações solicitadas. Para isso, o Google disponibiliza três formas:

  1. Por telefone: o Google ligará na sua empresa para confirmar os dados inseridos;
  2. Por SMS: o Google enviará um SMS confirmando os dados;
  3. Por cartão postal: o Google enviará um cartão postal para sua empresa, esse processo é o mais demorado, de 3 a 4 semanas.
Opções de confirmação

Opções de confirmação

Clique em “Concluir” para verificar as informações, no exemplo usado, foi solicitado via cartão postal, devido aos dados inseridos no sistema, veja a imagem abaixo.

Opção selecionada

Opção selecionada

Caso sua empresa seja grande e tenha diversas unidades, você pode fazer o cadastro delas utilizando um serviço de upload dos dados. Acesse esse link http://www.google.com/local/add/uploadFeed?hl=pt-BR&gl=BR para saber como proceder para realizar esse processo. A imagem abaixo mostra o printscreen do link citado.

Opção de upload de arquivo

Opção de upload de arquivo

Concluindo

Agora que você já sabe como colocar o endereço da sua empresa no Google Maps, não perca tempo e coloque-a o mais rápido possível. Dessa forma você estará aumentando a sua chance de atrair novos clientes.

Para saber mais sobre os produtos do Google e como usá-los acesse o site do Grupo de Usuários de Tecnologia Google (GTUG-SP) http://groups.google.com.br/group/sp-gtug.