Este documento fornece uma visão geral da API do Twitter e mostra como criar aplicações usando a biblioteca TwitterTools. Ele explica os principais componentes da API do Twitter, como autenticação, limites e tipos de retornos. Também exemplifica a criação de um "Oráculo de Zoltar", um robô que responde perguntas no Twitter usando métodos como postar tweets e obter menções.
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
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
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
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 dm's 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 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
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
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. 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
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);
}
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 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/
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