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 .


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.