desenvolvimento de apps para o twitter

31
 

Upload: erika-heidi

Post on 02-Jul-2015

5.044 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Desenvolvimento de apps para o Twitter

   

Page 2: Desenvolvimento de apps para o Twitter

   

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

Page 3: Desenvolvimento de apps para o Twitter

   

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 api's 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

Page 4: Desenvolvimento de apps para o Twitter

   

Page 5: Desenvolvimento de apps para o Twitter

   

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

Page 6: Desenvolvimento de apps para o Twitter

   *Dados da SuperInteressante

Page 7: Desenvolvimento de apps para o Twitter

   

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

Page 8: Desenvolvimento de apps para o Twitter

   

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

Page 9: Desenvolvimento de apps para o Twitter

   

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 dm's por dia

Tweets duplicados não são aceitos

Page 10: Desenvolvimento de apps para o Twitter

   

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 DM's (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

Page 11: Desenvolvimento de apps para o Twitter

   

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

Page 12: Desenvolvimento de apps para o Twitter

   

5. Registrando uma aplicação

Page 13: Desenvolvimento de apps para o Twitter

   

Page 14: Desenvolvimento de apps para o Twitter

   

Page 15: Desenvolvimento de apps para o Twitter

   

Page 16: Desenvolvimento de apps para o Twitter

   

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)

Page 17: Desenvolvimento de apps para o Twitter

   

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

Page 18: Desenvolvimento de apps para o Twitter

   

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

Page 19: Desenvolvimento de apps para o Twitter

   

6.1 Retornos da API

Principais retornos Objeto Usuário Objeto Tweet Objeto Timeline Mensagens de erro

Page 20: Desenvolvimento de apps para o Twitter

   

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. Demasiado interesse pelo estudo de redes sociais e suas influências. Criadora do TweetAuditor.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

Page 21: Desenvolvimento de apps para o Twitter

   

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] =>

Page 22: Desenvolvimento de apps para o Twitter

   

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 

Page 23: Desenvolvimento de apps para o Twitter

   

6.2 Exemplos Com autenticação do usuáriosession_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);}

Page 24: Desenvolvimento de apps para o Twitter

   

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)

Page 25: Desenvolvimento de apps para o Twitter

   

6.3 Métodos Principais

Tweets­related update(msg[,inreplyto,autoshort]) getTweet(id) getTimeline([limit]) getMentions([limit]) getRetweets([limit]) getFavorites([page,limit])

Page 26: Desenvolvimento de apps para o Twitter

   

6.3 Métodos Principais

Public getTrending() search(query)

Chamada Genérica makeRequest(api_url[,$args=null,$method='GET'])

Page 27: Desenvolvimento de apps para o Twitter

   

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 '?')

Responde e salva o ID da última mention verificada

http://twitter.com/GreatZoltar 

Faça sua pergunta agora!@GreatZoltar

Page 28: Desenvolvimento de apps para o Twitter

   

/* 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 chamada especí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/ 

Page 29: Desenvolvimento de apps para o Twitter

   

8. Sites utilizando

TweetAuditor Monitoramento e Estatísticas de contas Twitter http://tweetauditor.in

TweetVote Enquetes via Twitter http://tweetvote.in

Page 30: Desenvolvimento de apps para o Twitter

   

9. Links

Site Oficial – documentação, demos, instruções gerais http://twittertools.in

Twittertools no GitHub http://github.com/erikaheidi/Twittertools

Page 31: Desenvolvimento de apps para o Twitter

   

OBRIGADO!contato: [email protected]