SlideShare una empresa de Scribd logo
1 de 26
Hacking the API
      Léo Hackin
      @leohackin
  leohackin.com.br :D
TWITTER ?!
TWITTER EM NÚMEROS

•1   semana = um BILHÃO de tweets

• 140   milhões de tweets por dia

• 460k   novas contas por dia

• Aumento     de 182% de acessos via mobile desde 2010

• Em    2010, já tinhamos 75kk de usuários
http://4.bp.blogspot.com/_FPSJMwYW4dY/TS27LwrpVDI/AAAAAAAAC5U/Ps6DW_Hg-iM/s1600/festival-de-verao-salvador.jpg




       trendtopics!




                                                               @tagliati :D
PORQUE USAR O TWITTER?

• Facilidade   imensa de uso

• Nichos   de informação

• Capacidade    de propagação de informação MUITO alta

• Humanização     da comunicação Empresa <=> Cliente

• Forma    natural e simples de indexação (#hashtags)

• Capacidade    de construção de aplicativos (API! :D)
TWITTER API :)
 http://dev.twitter.com/
API adequada! :)




   http://4.bp.blogspot.com/_Cb7SBOm3d4M/TS9O9-hPM4I/AAAAAAAAC2o/J7TAONOavJw/s1600/suzhou-buddha.jpg
Fácil




http://kerryhishon.files.wordpress.com/2010/10/learning-to-purl.jpg
PoderosA

   •PHP
   •Ruby
   •C#
   •Java
   •Python
   •Javascript
   •... via Ábaco
   •Rest :D

http://wallpapers-diq.org/wallpapers/72/Arnold_Schwarzenegger%2C_IFBB_Mr._Olympia.jpg
Flexivel :)

   •Tweets
   •Mentions
   •Direct Messages
   •Geolocation
   •Followers/Following
   •Lists
   •Everything!!!!!

http://fc09.deviantart.net/fs26/f/2008/183/2/1/Flexibility_by_alice_lupa.jpg
E gente a rodo
        usando! :D




http://blogs.estadao.com.br/filosofia-de-bem-viver/wp-content/blogs.dir/128/files/Happiness.jpg
API CONSOLE
REGISTRAR APP
APPLICATION TYPE




Client      Browser
REGISTRAR APP


• Permite   acessar recursos protegidos (via OAuth)

• Número    limitado de requests por hora (variável)

• Permite   cadastro de URL de callback (browser app)
http://www.xboxkinecthacks.com/wp-content/uploads/2011/03/kid-hack.jpg




Hacking
TWITTER GEM (RUBY)
    http://twitter.rubyforge.org/




$ gem install twitter
RECUPERANDO STATUS


# Status mais recente
puts Twitter.user_timeline("giran_br").first.text


# Procurando status com a hashtag #giran
puts search.hashtag("#giran").no_retweets.per_page
(1).fetch.first.text
AUTENTICANDO
Twitter.configure do |config|
  config.consumer_key = YOUR_CONSUMER_KEY
  config.consumer_secret = YOUR_CONSUMER_SECRET
  config.oauth_token = YOUR_OAUTH_TOKEN
  config.oauth_token_secret = YOUR_OAUTH_TOKEN_SECRET
end

# Inicializa cliente autenticado
client = Twitter::Client.new
POSTANDO NOVO STATUS


# Post a status update
client.update("@wbotelhos sends data")
@ANYWHERE (JAVASCRIPT)
   http://platform.twitter.com/js-api.html




   API mantida oficialmente pelo Twitter
RECUPERANDO STATUS
<script src="http://platform.twitter.com/anywhere.js?
id=API_KEY&v=chirp_preview"></script>



<script>
    twttr.anywhere(function(T) {

      // últimos 20 status do usuário @giran_br
      T.User.find('giran_br').timeline().first(20).each(function(status) {
        $('div#tweets').append('<p>' + status.screenName + ': '
        + status.text + '</p>');
      });

    });
</script>
CRIANDO HOVERCARDS
<script src="http://platform.twitter.com/anywhere.js?
id=API_KEY&v=chirp_preview"></script>


<script type="text/javascript">
   twttr.anywhere(onAnywhereLoad);
      function onAnywhereLoad(twitter) {
      twitter.linkifyUsers();
   };
</script>
TWEET BOX
<script src="http://platform.twitter.com/anywhere.js?
id=API_KEY&v=chirp_preview"></script>

twitter(".comments").tweetBox({
    label: 'What do you think about this article?',
    defaultContent: '#nettuts ',
    onTweet: function(plain, html){
        // Actions when tweet is sent
    }
});
Hacking Twitter API [ Giran Siege ]

Más contenido relacionado

Destacado

Redis on Rails (RedDotRubyConf 2012)
Redis on Rails (RedDotRubyConf 2012)Redis on Rails (RedDotRubyConf 2012)
Redis on Rails (RedDotRubyConf 2012)
Obie Fernandez
 

Destacado (12)

Redis
RedisRedis
Redis
 
Living by the Book Week 1
Living by the Book Week 1Living by the Book Week 1
Living by the Book Week 1
 
Photoimpa
PhotoimpaPhotoimpa
Photoimpa
 
Redis on Rails at RedDotRubyConference 2012
Redis on Rails at RedDotRubyConference 2012Redis on Rails at RedDotRubyConference 2012
Redis on Rails at RedDotRubyConference 2012
 
Brochure Masters NL
Brochure Masters NLBrochure Masters NL
Brochure Masters NL
 
Redis on Rails (RedDotRubyConf 2012)
Redis on Rails (RedDotRubyConf 2012)Redis on Rails (RedDotRubyConf 2012)
Redis on Rails (RedDotRubyConf 2012)
 
The bible.w1
The bible.w1The bible.w1
The bible.w1
 
Living by the Book Week 2
Living by the Book Week 2Living by the Book Week 2
Living by the Book Week 2
 
iMasters DevCommerce 2016 - A difícil tarefa de ser TI numa empresa de varejo...
iMasters DevCommerce 2016 - A difícil tarefa de ser TI numa empresa de varejo...iMasters DevCommerce 2016 - A difícil tarefa de ser TI numa empresa de varejo...
iMasters DevCommerce 2016 - A difícil tarefa de ser TI numa empresa de varejo...
 
HTML5 for Mobile
HTML5 for MobileHTML5 for Mobile
HTML5 for Mobile
 
Wv.power
Wv.powerWv.power
Wv.power
 
Living by the Book Week 3
Living by the Book Week 3Living by the Book Week 3
Living by the Book Week 3
 

Similar a Hacking Twitter API [ Giran Siege ]

Ruby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviçosRuby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviços
Bruno Ghisi
 
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open WebNovo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Leonardo Balter
 
Como um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoComo um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenho
David Robert Camargo de Campos
 

Similar a Hacking Twitter API [ Giran Siege ] (20)

Api do twitter
Api do twitterApi do twitter
Api do twitter
 
TDC2016POA | Trilha Web - Realtime applications com Socket.io
TDC2016POA | Trilha Web - Realtime applications com Socket.ioTDC2016POA | Trilha Web - Realtime applications com Socket.io
TDC2016POA | Trilha Web - Realtime applications com Socket.io
 
PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09
 
Api do twitter
Api do twitterApi do twitter
Api do twitter
 
Visão Geral De Desenvolvimento Web Sre 2012
Visão Geral De Desenvolvimento Web   Sre 2012Visão Geral De Desenvolvimento Web   Sre 2012
Visão Geral De Desenvolvimento Web Sre 2012
 
Introdução a plataforma de aplicativos Redu
Introdução a plataforma de aplicativos ReduIntrodução a plataforma de aplicativos Redu
Introdução a plataforma de aplicativos Redu
 
jQuery Mobile - Aplicações móveis com Javascript
jQuery Mobile - Aplicações móveis com JavascriptjQuery Mobile - Aplicações móveis com Javascript
jQuery Mobile - Aplicações móveis com Javascript
 
Ruby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviçosRuby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviços
 
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open WebNovo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
 
Workshop o ABC da Web 2.0 para PME
Workshop o ABC da Web 2.0 para PMEWorkshop o ABC da Web 2.0 para PME
Workshop o ABC da Web 2.0 para PME
 
Análise de Redes Sociais com Python
Análise de Redes Sociais com PythonAnálise de Redes Sociais com Python
Análise de Redes Sociais com Python
 
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãos
 
Desenvolvendo Aplicativos Sociais
Desenvolvendo Aplicativos SociaisDesenvolvendo Aplicativos Sociais
Desenvolvendo Aplicativos Sociais
 
Desenvolvimento de aplicações para o Twitter
Desenvolvimento de aplicações para o TwitterDesenvolvimento de aplicações para o Twitter
Desenvolvimento de aplicações para o Twitter
 
TweetMeToo (2010)
TweetMeToo (2010)TweetMeToo (2010)
TweetMeToo (2010)
 
Laboratório Web 2013-2014 - Introdução e Enquadramento
Laboratório Web 2013-2014 - Introdução e EnquadramentoLaboratório Web 2013-2014 - Introdução e Enquadramento
Laboratório Web 2013-2014 - Introdução e Enquadramento
 
Workshop Ferramentas 2.0para Ideias 2.0
Workshop Ferramentas 2.0para Ideias 2.0 Workshop Ferramentas 2.0para Ideias 2.0
Workshop Ferramentas 2.0para Ideias 2.0
 
Como um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoComo um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenho
 
Google Analytics Reporting API: Bebendo água direto da fonte
Google Analytics Reporting API: Bebendo água direto da fonteGoogle Analytics Reporting API: Bebendo água direto da fonte
Google Analytics Reporting API: Bebendo água direto da fonte
 
Workshop Performance Rails
Workshop Performance RailsWorkshop Performance Rails
Workshop Performance Rails
 

Más de Leonardo "Hackin" Freire

Más de Leonardo "Hackin" Freire (8)

A arte de_pomodorar
A arte de_pomodorarA arte de_pomodorar
A arte de_pomodorar
 
ZTD e POMODOROS
ZTD e POMODOROSZTD e POMODOROS
ZTD e POMODOROS
 
[RockAndRails] TDD com RSpec
[RockAndRails] TDD com RSpec[RockAndRails] TDD com RSpec
[RockAndRails] TDD com RSpec
 
Giran Sieges - Applescript com @leohackin
Giran Sieges - Applescript com @leohackinGiran Sieges - Applescript com @leohackin
Giran Sieges - Applescript com @leohackin
 
Os desafios no uso de XP e SCRUM no dia-a-dia
Os desafios no uso de XP e SCRUM no dia-a-diaOs desafios no uso de XP e SCRUM no dia-a-dia
Os desafios no uso de XP e SCRUM no dia-a-dia
 
Iniciando com IphoneDev
Iniciando com IphoneDevIniciando com IphoneDev
Iniciando com IphoneDev
 
Designer vs programador
Designer vs programadorDesigner vs programador
Designer vs programador
 
PHPZEIRO: Adote um framework
PHPZEIRO: Adote um frameworkPHPZEIRO: Adote um framework
PHPZEIRO: Adote um framework
 

Último

Último (9)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Hacking Twitter API [ Giran Siege ]