Desenvolvimento de aplicações para o Twitter

30

Transcript of Desenvolvimento de aplicações 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 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. 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

Dados da SuperInteressanteDezembro 2010

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

3. Twitter API

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

6.3 Métodos

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

6.3 Métodos

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*/

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