Apontador API (para programadores Python)

Preview:

DESCRIPTION

Palestra apresentada no PythonBrasil[6] (Out/2010), na qual a recém-lançada API do Apontador é apresentada para os desenvolvedores com foco particular no uso com Python (através da biblioteca própria de código livre).

Citation preview

Apontador API(para programadores Python)

chester@apontador.com@chesterbr

http://www.apontador.com.br

Palestrante

● Bacharel em Matemática Aplicada e Computacional (IME/USP)

● Desenvolvedor profissional há 2e1 anos ● Python: cruzalinhas● Arquiteto de Produtos no Apontador● Twitter: @chesterbr● Mais informações: http://chester.me

O que vamos ver● Apontador (empresa, site, plataforma)● Apontador API● Python e a Apontador API● A vida, o universo e tudo mais

Apontador

“Aquele site de mapasque virou pago”

“Aquele site de mapasque virou pago”

Conectar locais, pessoas e informações ao seu redor

Conectar locais, pessoas e informações ao seu redor

(tá, e daí?)

daí que...

Plataforma

Nossa Visão

Web Services - Clientes e Parceiros

Plataforma

Presente(i.e., passado recente)

Plataforma

Futuro

(é, você aí mesmo!)

Apontador API

APIsApplication Programming Interface

APIs no Brasil

Fonte:

APIs no Brasil

Fonte:

Possibilidades

● Criar sites/aplicativos novos usando informações de locais● Integrar nos já existentes● Mashups com outros serviços● Armazenar locais e informações

Regras do Jogo● Dê linkback/crédito● Abra a aplicação o ao público● Mantenha o “fair play”● Vários aplicativos diferntes é ok● Uso comercial é ok!● Uso acadêmico é muito ok!!!!

O que dá pra fazer?

● Busca local● Informações, fotos, avaliações● Segmentação (categorias)● Informações do usuário● Cadastrar coisas novas

Busca Local

● Busca: o que

● Busca local: o que + onde

Busca Local

● Busca: o que

● Busca local: o que + onde

Busca Local

● Busca: o que

● Busca local: o que + onde

Busca Local na Apontador API

● search/places/byaddress● search/places/byzipcode● search/places/bypoint● search/places/bybox

Tecnologia Agnóstica

● REST (HTTP)● Respostas JSON, XML e KML ● OAuth para ações em nome de usuários Apontador

Python

Idéia Original

“Vamos fazer bibliotecas para todas as linguagens populares, facilitando a

vida do desenvolvedor”

Errr...

● Quais linguagens são “populares”?● Qual o estilo das bibliotecas?● Quanto vamos demorar?● E se os usuários não gostarem?

Solução Adotada

● Começamos com Python e PHP● Bibliotecas livres (Apache 2.0)● Erramos? Analise, dê feedback, mande seus patches!

http://github.com/apontador /apontador-api-libs

Github

Hello World1) Cadastre seu usuário no http://api.apontador.com.br

2) Entre na edição do perfil, e lá em aplicativos

Hello World3) Clique em Criar Aplicativo e informe os dados solicitados4) O cadastro vai gerar o Consumer Key e o Consumer Secret – eles são o “usuário e senha” do app5) Agora é só brincar de Python :-)

apontador-api-libs/python>>> from apontador import ApontadorAPI>>> api = ApontadorAPI( consumer_key = "...", consumer_secret = "...")>>> api.search_places_by_address( state="PR", city="Curitiba", term="Universidade Federal do Parana", limit=1)

UFPR?

UFPR!

Universidade FederalDo Paraná

E veio certo?

<street>Rua XV de Novembro</street><number>1299</number>

Mas veio certo mesmo?

<lat>-25.42722</lat><lng>-49.26154</lng>

Postos na Região>>> import json>>> postos = json.loads( api.search_places_by_point( latitude=-25.42722, longitude=-49.26154, category_id=65, type="json"))['search']['places']>>> postos[0]['place']['name']u'IRMAOS BERTOLDI LTDA'>>> postos[1]['place']['name']u'A. S. J - COMERCIO DE COMBUSTIVEIS LTDA'>>> postos[2]['place']['name']u'POSTO MONALISA CHEVRON R MARECHAL HERMES'

E o posto é bom?>>> posto_id = postos[0]['place']['id']>>> reviews = json.loads( api.get_place_reviews( posto_id, type="json"))['place']['reviews']>>> reviews[0]['review']['content']u'Esse posto \xe9 legal por causa da localiza\xe7\xe3o...perto da pista de sk8 do ga\xfacho...e o pre\xe7o \xe9 bacana tbm..mas o atendimento \xe9 mto zoado...os frentistas Sao Mt mal educados e sem atencao...um dia que passei l\xe1 tava rolando ate uma briga entre a atendente do caixa e os frentistas...S\xf3 recomendo se vc tiver paciencia!'

Inserindo Informações

Não é obrigatório, mas:

● É mais fácil ter tudo num lugar● Aumenta o engajamento● Faz a plataforma crescer

Inserindo Informações

OAuth● Solicite um token inicial● Troque ele pela URL de auth● Redirecione o usuário para a URL resultante

OAuth

OAuth● Sua URL de callback é chamada, recebendo o token e seu secret; guarde-os com carinho● Para apps desktop/mobile, use PIN Code (vide pincode.py)

OAuth>>> api = ApontadorAPI( consumer_key = "...", consumer_secret = "...", oauth_token = "...", oauth_token_secret = "...")>>> api.create_new_review( place_id=posto_id, rating=4, content="Eu gostei...")>>> api.vote_place_up(place_id=posto_id)>>> api.add_photo_to_place( place_id=posto_id, image_file="/tmp/foto.jpg")

Aprenda Mais● Veja os exemplos (na biblioteca)● Documentação: http://api.apontador.com.br● Lista de discussão: http://groups.google.com/group/ apontador-api● Use o Apontador!

A vida, o universoe tudo mais

Futuro próximo

● Apontador Mobile (checkins)● API JavaScript● Informações setoriais (ex.: preço da gasolina nos postos)

Meta de Longo Prazoe missão pessoal

Trazer toda a Plataforma Apontador para o lado open da força

Meta de Longo Prazoe missão pessoal

Trazer toda a Plataforma Apontador para o lado open da força

(ou conquistar 24 territóriosà nossa escolha)

ConclusõesPensem “open” onde vocês

trabalham: o que a empresa tem que pode ir pro mundo, com

vantagem para ambos?

A API está no ar, agora é com vocês escrever os aplicativos!

Dúvidas?Obrigado!

chester@apontador.com@chesterbr

http://www.apontador.com.br

Recommended