Desenvolvimento de apps para o Twitter

  • 5,030 views
Uploaded on

Palestra ministrada em 21/07/2011 no V Ensol. Desenvolvimento de aplicações PHP para o Twitter com a utilização da biblioteca Open Source TwitterTools, disponível em: http://twittertools.in

Palestra ministrada em 21/07/2011 no V Ensol. Desenvolvimento de aplicações PHP para o Twitter com a utilização da biblioteca Open Source TwitterTools, disponível em: http://twittertools.in

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
5,030
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
29
Comments
1
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1.    
  • 2. Objetivos●  Fornecer uma visão geral sobre a API do Twitter●  Mostrar como é o processo de criação de uma  aplicação para o Twitter●  Exemplificar a criação de uma aplicação com a  lib TwitterTools através do “Oráculo de Zoltar”. Faça sua pergunta sobre o futuro  para @GreatZoltar (se tiver  coragem!!!)   
  • 3. 1. Aplicativos Sociais  O que são aplicativos sociais?  Aplicativos integrados a sites de redes  sociais, que se beneficiam de uma  estrutura existente através do uso de  apis e containers  Podem ser de vários tipos, com  diversas finalidades, desde jogos até  simples ”robôs”  Compartilhamento é a palavra chave  Integração de sites com redes sociais é  tendência    
  • 4.    
  • 5. 2. Twitter no Brasil  O Brasil é o terceiro entre os dez  países mais impactados pelo  Twitter  Já na lista de países com mais  ”tuiteiros” em relação ao número  de pessoas com internet em  casa, o Brasil fica em segundo  42,5% dos brasileiros que usam  o Twitter passam mais de 6  horas conectados por dia, em  média    
  • 6. *Dados da SuperInteressante    
  • 7. 3. Twitter API  REST API  Funcionalidades de usuário, tweets, dms etc  Search API  Busca em tempo real  Streaming API  Tweets em tempo real, para alto volume de uso  Estatísticas de uso da API do Twitter:  13 bilhões de reqs/dia, 150mil reqs/segundo    
  • 8. 3. Twitter API  Autenticação  OAuth – requisições assinadas  Acesso orientado por usuário  Tipos diferentes de acesso por aplicação  (permissões)  Aplicações não salvam senhas  Usuários podem mudar suas senhas e as  chaves (tokens) continuam válidas    
  • 9. 3. Twitter API  Limitações REST api  350 chamadas/hora por  usuário(chamadas autenticadas) ou  IP(não autenticadas)  ”limites naturais” para total de follows,  unfollows, tweets e dms por dia  Tweets duplicados não são aceitos    
  • 10. 4. Diferenças entre Aplicações A nível de Permissão (definido no registro)  Somente Leitura (R)  Leitura e Escrita (RW)  Leitura, Escrita e DMs (RWD) A nível de Projeto  Multi usuário, com ou sem persistência  Usuário único A nível de Acesso  Autenticada  Não autenticada    
  • 11. 5. Registrando uma aplicação  Registro de Aplicação  Antes de começar, é preciso cadastrar  a aplicação em http://dev.twitter.com  No formulário você define os dados da  app e a sua url de callback  Após o cadastro, você terá duas  chaves: consumer_key e  consumer_secret   
  • 12. 5. Registrando uma aplicação   
  • 13.    
  • 14.    
  • 15.    
  • 16. 6. Lib TwitterTools  Requisitos Básicos  Servidor web externo com: − módulo Curl (libcurl) − allow_url_fopen ON (php.ini)  consumer_key e consumer_secret  (obtidos no registro da app)    
  • 17. 6. Lib TwitterTools  Benefícios  Facilidade muito maior no processo de autenticação  Métodos simples para as chamadas mais comuns  Retorno em array  Possibilidade de executar também chamadas  complexas e bem específicas  Encurtador de url e envio de imagens (twitpic) já  nativos  Possibilidade de extender com novas  funcionalidades    
  • 18. 6. Lib TwitterTools  Checando estado  Propriedade ”state” − 0 = não autenticado − 1 = acabou de autorizar a app e retornar − 2 = autenticado  Conf. Api keys de terceiros  TwitterTools::$bl_login  TwitterTools::$bl_apikey  TwitterTools::$twitpic_apikey    
  • 19. 6.1 Retornos da API  Principais retornos  Objeto Usuário  Objeto Tweet  Objeto Timeline  Mensagens de erro   
  • 20. 6.1 Retornos da API: objeto User[profile_background_image_url] =>http://a2.twimg.com/profile_background_images/185716312/bg_tw.jpg[protected] => 0[statuses_count] => 7411[location] => João Pessoa PB[name] => Erika Heidi Focke[listed_count] => 58[url] => http://erikaheidi.com[following] => 1[description] => Desenvolvedora Web, recém formada em publicidade. Demasiadointeresse pelo estudo de redes sociais e suas influências. Criadora doTweetAuditor.in[created_at] => Tue Jan 27 23:55:15 +0000 2009[id_str] => 19625601[favourites_count] => 22[profile_image_url] =>http://a3.twimg.com/profile_images/1441955889/DSCF4643__normal.JPG[id] => 19625601[time_zone] => Brasilia[friends_count] => 528[followers_count] => 1126[screen_name] => erikaheidi    
  • 21. 6.1 Retornos da API: objeto Tweet[user] => Array(objeto usuário)[in_reply_to_status_id] =>[in_reply_to_user_id] =>[text] => Eu estou rindo muito com a confusão do @GreatZoltar![created_at] => Wed Jul 20 00:25:01 +0000 2011[id_str] => 93476467735937024[geo] =>[favorited] =>[id] => 93476467735937024[in_reply_to_status_id_str] =>[source] => TweetDeck[coordinates] =>[in_reply_to_screen_name] =>[truncated] =>[in_reply_to_user_id_str] =>    
  • 22. 6.2 Exemplos  Exemplo de código para obter 10 mentions  recentes do usuário (modo ”robô”) $cskey = ”XYZ”; $cssecret = ”ABC”; $atoken = ”cde”; $atoken_secret = ”fgh”; $tw = new TwitterTools($cskey,$cssecret,$atoken,$atoken_secret); $mentions = $tw->getMentions(10); print_r($mentions); Retorno: Array com elementos do tipo ”Tweet”(array), incuindo o objeto do  usuário(também em formato array). Exemplo: http://pastebin.com/TwSLPTUZ    
  • 23. 6.2 Exemplos  Com autenticação do usuário session_name("MyAPP"); session_start(); $cskey = ”XYZ”; $cssecret = ”ABC”; $tw = new TwitterTools($cskey,$cssecret); if(!$tw->state) { //exibir botão p/ logar $request_link = $tw->getAuthLink(); echo <p><a href=".$request_link." title="sign in with your twitter account"><img src="img/sign-in-with-twitter- d.png" /></a></p>; } else { $mentions = $tw->getMentions(10); print_r($mentions); }   
  • 24. 6.3 Métodos Principais  User­related  remainingCalls()  getCredentials()  checkConnections(users_logins)  follow(user_login)  unfollow(user_login)  getFollowers([user_login,cursor])  getFriends([user_login,cursor])  getUsersInfo(users_ids)   
  • 25. 6.3 Métodos Principais  Tweets­related  update(msg[,inreplyto,autoshort])  getTweet(id)  getTimeline([limit])  getMentions([limit])  getRetweets([limit])  getFavorites([page,limit])   
  • 26. 6.3 Métodos Principais  Public  getTrending()  search(query)  Chamada Genérica  makeRequest(api_url[,$args=null,$method=GET])   
  • 27. 7. Exemplo: Oráculo de Zoltar  Aplicativo ”robô” que  responde perguntas de forma  randômica  Roda através do cron, a cada  5 min  Verifica novas mentions e se  é uma pergunta (procura ?) http://twitter.com/GreatZoltar   Responde e salva o ID da  Faça sua pergunta agora! @GreatZoltar última mention verificada    
  • 28. /* inclui as libs e instancia o objeto twittertools *//* cria um array com várias respostas *//* obtém o ID da última mention verificada e faz uma chamadaespecífica para obter as mentions a partir daquele ID */if($result) { foreach($result as $tweet) { if(!$lastid) $lastid = $tweet[id_str]; //pergunta? $pos = strpos($tweet[text],?); if($pos !== false) { //responde pergunta $rand = array_rand($answers); $tw->update("@".$tweet[user][screen_name]."".$answers[$rand],$tweet[id_str]); } }}/* salva o $lastid como o id da última mention verificada*/Código completo: http://twittertools.in/2011/07/21/novo­demo­oraculo­de­zoltar/     
  • 29. 8. Sites utilizando  TweetAuditor  Monitoramento e Estatísticas de contas Twitter  http://tweetauditor.in  TweetVote  Enquetes via Twitter  http://tweetvote.in    
  • 30. 9. Links  Site Oficial – documentação, demos, instruções  gerais  http://twittertools.in  Twittertools no GitHub  http://github.com/erikaheidi/Twittertools    
  • 31. OBRIGADO! contato: erika@erikaheidi.com