Download - 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!!!)
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
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
*Dados da SuperInteressante
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
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
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
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
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
5. Registrando uma aplicação
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)
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
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
6.1 Retornos da API
Principais retornos Objeto Usuário Objeto Tweet Objeto Timeline Mensagens de erro
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
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] =>
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
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);}
6.3 Métodos Principais Userrelated
remainingCalls() getCredentials() checkConnections(users_logins) follow(user_login) unfollow(user_login) getFollowers([user_login,cursor]) getFriends([user_login,cursor]) getUsersInfo(users_ids)
6.3 Métodos Principais
Tweetsrelated update(msg[,inreplyto,autoshort]) getTweet(id) getTimeline([limit]) getMentions([limit]) getRetweets([limit]) getFavorites([page,limit])
6.3 Métodos Principais
Public getTrending() search(query)
Chamada Genérica makeRequest(api_url[,$args=null,$method='GET'])
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
/* 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/novodemooraculodezoltar/
8. Sites utilizando
TweetAuditor Monitoramento e Estatísticas de contas Twitter http://tweetauditor.in
TweetVote Enquetes via Twitter http://tweetvote.in
9. Links
Site Oficial – documentação, demos, instruções gerais http://twittertools.in
Twittertools no GitHub http://github.com/erikaheidi/Twittertools
OBRIGADO!contato: [email protected]