Essa semana quis implementar os posts do  twitter dentro de um flash (swf )  no site da banda carioca Beelive ( ainda em www.remind.com.br/projetos/beelive ) que começei a implementar no último final de semana .

Usei o as2 (actionScript 2.0 ) para realizar o resize das imagens do background (que trocam no  fundo  de acordo com o menu escolhido )  e outras classes  que eu já tinha feito em outros projetos  para poder ganhar tempo. Afinal tinha prometido para as amigas uma força na produção do site assim que pudesse e como fiquei sem internet um dia inteiro , aproveitei a oportunidade. Eles tinham me passado as fotos do ensaio e já tinha a idéia do layout  com poucos elementos na cabeça.

Quando a internet voltou  resolvi botar o twitter dentro do flash e fui direto ao diretório de desenvolvedores  do Twitter ,onde  encontrei diversas APIS e integrações para várias linguagens, inclusive uma para AS3 (actionscript 3 ), mas como eu usei as2 na produção do site não poderia utilizar a API do AS3.

Voltei pro google e resolvi meu problema . Encontrei  no forum do script brasil uma solução gentilmente cedida por um usuário para integrar o flash Actionscript 2 com o twitter .

Segue Abaixo a solução :

NO FLASH :

A única coisa que fiz no flash foi nomear  um campo de texto dinâmico  dentro do flash com o nome  intância  de   “conteudoTwitter” e que vai buscar as informações através do PHP e  exibir as informações do twitter desejado no campo de texto .

Dai criei  uma nova camada e em seu frame  introduzi um  loadvars para chamar o PHP cedido pelo nosso amigo do scriptBrasil e  que vai buscar as informações no twitter desejado .

Código flash  para recuperar as informações do PHP :

/* criamos uma instancia do objeto LoadVars */

var objetoLoad:LoadVars = new LoadVars();

/* função disparada quando o arquivo terminar de ser carregado */

objetoLoad.onLoad = function ():Void {

if(objetoLoad.conteudo != “”)

{

/* ações a serem executadas após o carregamento */

conteudoTwitter.text = objetoLoad.conteudo ;

}

}

/*

dentro do twitter.php temos o código que irá buscar as informações e  inseri-las  na variavel conteudo dentro do PHP e que o flash irá recuperar para o campo de texto .

Aqui, carregamos o arquivo

*/

objetoLoad.load(”twitter.php”);

//termina o flash

Código  PHP :

No código php você só deve inserir a identificação do twitter desejado que   no caso do projeto é www.twitter.com/beelive , então a identificação que se coloca no php é   “beelive” .  Ao lado você insere o numero de posts que deseja recuperar do twitter, que em nosso caso escolhemos somente o último ou seja “1″.

Salve o código abaixo como  twitter.php , edite a linha ($statuses = getTwitterStatus(”beeliv”, 1); // (”Login”, Qtd_mensagens); )  substituindo beelive pela identificação do twitter que você deseja inserir os posts  no flash e o número 1 pela quantidade de posts que você quer listar . Depois suba para o seu servidor junto com seu arquivo  e pagina  flash .


&conteudo=<?php // “Conteudo” é o nome da variável que será inserida no Dynamic Text no Arquivo Flash

//Para alterar o Twitter basta mudar o nome do Login e a quantidade de Mensagens

$statuses = getTwitterStatus(”beeliv”, 1); // (”Login”, Qtd_mensagens);

?>

<?php

foreach ($statuses as $status) {

$msg = $status['message'] . ‘ – Postado  a ‘ . $status['time'].”;

echo $msg;

}

?>

<?php

function getTwitterStatus($twitterUser, $howMany = 1) {

//pegar mensagens via XML importado do Twitter

$url = sprintf(”http://twitter.com/statuses/user_timeline/%s.xml?count=%d”,

$twitterUser, $howMany);

$parsed = new SimpleXMLElement(file_get_contents($url));

$tweets = array();

foreach($parsed->status as $status) {

$message = preg_replace(”/http:\/\/(.*?)\/[^ ]*/”, ‘<a href=”\”>\</a>’,

$status->text);

$time = niceTime(strtotime(str_replace(”+0000″, “”, $status->created_at)));

$tweets[] = array(’message’ => $message, ‘time’ => $time);

}

return $tweets;

}

function niceTime($time) {

// Ajuste dos Tempos das Mensagens (data atual – data informada na mensagem)

$delta = time() – $time;

if ($delta < 60) {

return ‘menos de 1 minuto atrás’;

} else if ($delta < 120) {

return ‘aprox 1 minuto atrás’;

} else if ($delta < (45 * 60)) {

return floor($delta / 60) . ‘ minutos atrás’;

} else if ($delta < (90 * 60)) {

return ‘aprox. uma hora atrás’;

} else if ($delta < (24 * 60 * 60)) {

return ‘aprox. ‘ . floor($delta / 3600) . ‘ horas atrás’;

} else if ($delta < (48 * 60 * 60)) {

return ‘1 dia atrás’;

} else {

return floor($delta / 86400) . ‘ dias atrás’;

}

}

?>&


Valeu galera até a próxima .

Uma Resposta para “Colocando Twitter no actionscript 2”

  1. Junior 05. fev, 2010 em 3:41 pm #

    Olá,
    realmente este tutorial me ajudou muito. Procurei em diversos sites e nenhum com uma solução tão simples e eficiente como esta.

    O unico problema que encontrei é que quando existe algum link HTTP no Tweet postado, o “$message” substitui para “/”.

    Pode me ajudar? Obrigado.