Desenvolvimento de aplicações para o Twitter

762 views

Published on

Slides da palestra de Erika Heidi no IV ECD, realizado nos dias 9 e 10 de dezembro de 2011 no IFPB. A apresentação foi sobre desenvolvimento de aplicações para o Twitter.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
762
On SlideShare
0
From Embeds
0
Number of Embeds
236
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Desenvolvimento de aplicações para o Twitter

  1. 1. 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 diferentes níveis de imersão, com diversas finalidades, desde jogos até simples ”robôs”  Compartilhamento é a palavra chave  Integração de sites com redes sociais é tendência
  2. 2. 2. Alguns dados do Twitter  Globalmente, é a segunda rede social mais acessada  Na América Latina, é o quarto maior, com crescimento de 59% no último ano  No Brasil também é o quarto, com 12 milhões de visitantes.Dados da ComScore, junho de 2011
  3. 3. Dados da SuperInteressanteDezembro 2010
  4. 4. 3. Twitter API  REST API  RW, ”direto do banco”, sem filtros  Search API  Read only, user quality filter + relevance and ranking filter, armazenados em cache  Streaming API  Read only, user quality filter, streaming tempo real.  Estatísticas de uso da API do Twitter:  13 bilhões de reqs/dia, 150mil reqs/segundo
  5. 5. 3. Twitter API
  6. 6. 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
  7. 7. 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
  8. 8. 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
  9. 9. 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_key_secret
  10. 10. 5. Registrando uma aplicação
  11. 11. 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)
  12. 12. 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)  Possibilidade de extender com novas funcionalidades
  13. 13. 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
  14. 14. 6.1 Retornos da API  Principais retornos  Objeto Usuário  Objeto Tweet  Objeto Timeline  Mensagens de erro
  15. 15. 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
  16. 16. 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] =>
  17. 17. 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
  18. 18. 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); }
  19. 19. 6.3 Métodos  User-related  remainingCalls()  getCredentials()  checkConnections(users_logins)  isFollower(user_login)  follow(user_login)  unfollow(user_login)  getFollowers([user_login,cursor])  getFriends([user_login,cursor])  getUsersInfo(users_ids)
  20. 20. 6.3 Métodos  Tweets-related  update(msg[,inreplyto,autoshort])  getTweet(id)  getTimeline([limit])  getMentions([limit])  getRetweets([limit])  getFavorites([page,limit])
  21. 21. 6.3 Métodos  Public  getTrending()  search(query)  Chamada Genérica  makeRequest(api_url[,$args=null,$method=GET])
  22. 22. 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! última mention verificada @GreatZoltar
  23. 23. /* 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*/
  24. 24. 8. Sites utilizando  TweetAuditor  Monitoramento e Estatísticas de contas Twitter  http://tweetauditor.in  TweetVote  Enquetes via Twitter  http://tweetvote.in
  25. 25. 9. Links  Site Oficial – documentação, demos, instruções gerais  http://twittertools.in  Twittertools no GitHub  http://github.com/erikaheidi/Twittertools
  26. 26. OBRIGADO! erika@entrebits.com.br

×