57
Apontador API (para programadores Python) [email protected] @chesterbr http://www.apontador.com.br

Apontador API (para programadores Python)

Embed Size (px)

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

Page 1: Apontador API (para programadores Python)

Apontador API(para programadores Python)

[email protected]@chesterbr

http://www.apontador.com.br

Page 2: Apontador API (para programadores Python)

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

Page 3: Apontador API (para programadores Python)

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

Page 4: Apontador API (para programadores Python)

Apontador

Page 5: Apontador API (para programadores Python)

“Aquele site de mapasque virou pago”

Page 6: Apontador API (para programadores Python)

“Aquele site de mapasque virou pago”

Page 7: Apontador API (para programadores Python)

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

Page 8: Apontador API (para programadores Python)

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

(tá, e daí?)

Page 9: Apontador API (para programadores Python)

daí que...

Page 10: Apontador API (para programadores Python)
Page 11: Apontador API (para programadores Python)

Plataforma

Nossa Visão

Page 12: Apontador API (para programadores Python)

Web Services - Clientes e Parceiros

Page 13: Apontador API (para programadores Python)

Plataforma

Presente(i.e., passado recente)

Page 14: Apontador API (para programadores Python)

Plataforma

Futuro

Page 15: Apontador API (para programadores Python)

(é, você aí mesmo!)

Page 16: Apontador API (para programadores Python)

Apontador API

Page 17: Apontador API (para programadores Python)

APIsApplication Programming Interface

Page 18: Apontador API (para programadores Python)
Page 19: Apontador API (para programadores Python)

APIs no Brasil

Fonte:

Page 20: Apontador API (para programadores Python)

APIs no Brasil

Fonte:

Page 21: Apontador API (para programadores Python)

Possibilidades

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

Page 22: Apontador API (para programadores Python)

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!!!!

Page 23: Apontador API (para programadores Python)

O que dá pra fazer?

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

Page 24: Apontador API (para programadores Python)

Busca Local

● Busca: o que

● Busca local: o que + onde

Page 25: Apontador API (para programadores Python)

Busca Local

● Busca: o que

● Busca local: o que + onde

Page 26: Apontador API (para programadores Python)

Busca Local

● Busca: o que

● Busca local: o que + onde

Page 27: Apontador API (para programadores Python)

Busca Local na Apontador API

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

Page 28: Apontador API (para programadores Python)

Tecnologia Agnóstica

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

Page 29: Apontador API (para programadores Python)

Python

Page 30: Apontador API (para programadores Python)

Idéia Original

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

vida do desenvolvedor”

Page 31: Apontador API (para programadores Python)

Errr...

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

Page 32: Apontador API (para programadores Python)

Solução Adotada

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

Page 33: Apontador API (para programadores Python)

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

Github

Page 34: Apontador API (para programadores Python)

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

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

Page 35: Apontador API (para programadores Python)

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 :-)

Page 36: Apontador API (para programadores 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)

Page 37: Apontador API (para programadores Python)

UFPR?

Page 38: Apontador API (para programadores Python)

UFPR!

Universidade FederalDo Paraná

Page 39: Apontador API (para programadores Python)

E veio certo?

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

Page 40: Apontador API (para programadores Python)
Page 41: Apontador API (para programadores Python)

Mas veio certo mesmo?

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

Page 42: Apontador API (para programadores Python)
Page 43: Apontador API (para programadores Python)

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'

Page 44: Apontador API (para programadores Python)

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!'

Page 45: Apontador API (para programadores Python)

Inserindo Informações

Não é obrigatório, mas:

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

Page 46: Apontador API (para programadores Python)

Inserindo Informações

Page 47: Apontador API (para programadores Python)

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

Page 48: Apontador API (para programadores Python)

OAuth

Page 49: Apontador API (para programadores Python)

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)

Page 50: Apontador API (para programadores Python)

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")

Page 51: Apontador API (para programadores Python)

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!

Page 52: Apontador API (para programadores Python)

A vida, o universoe tudo mais

Page 53: Apontador API (para programadores Python)

Futuro próximo

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

Page 54: Apontador API (para programadores Python)

Meta de Longo Prazoe missão pessoal

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

Page 55: Apontador API (para programadores Python)

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)

Page 56: Apontador API (para programadores Python)

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!

Page 57: Apontador API (para programadores Python)

Dúvidas?Obrigado!

[email protected]@chesterbr

http://www.apontador.com.br