apontador api (para programadores python)
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).TRANSCRIPT
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!