logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!

Consumindo dados do Twitter com Actionscript 3.0

Colocado por Lucas Marçal na(s) categoria(s): eventos customizados, Redes Sociais, Tutoriais, Twitter, XML, XMLList em 01 9th, 2010 | Sem comentários

Nesse tutorial vou mostrar como acessar dados do Twitter via XML pela URL de busca do Twitter, é um tutorial básico que visa trabalhar com uma simples integração.

Basicamente o que fazemos é acessar um XML gerado pela busca do Twitter e fazer o “parser” desses dados, esse tutorial não vai abordar o tema de inclusão desses resultados no Stage do Flash, apenas a obtenção desses resultados através de manipulação de XML.

Exemplo depois de uma pequena customização na classe Consome.as para incluir os “tweets” no layout.
Exemplo

Basicamente vamos trabalhar com 3 classes, são elas:

GetTweets.as

  • Essa é a classe que vai fazer a conexão com o XML e vai tratar os dados
/**
 * @author: Lucas Marçal
 * @version: 1.0
 * @email: inbox@lucasmarcal.com.br
 * @link: www.lucasmarcal.com.br/blog
 */
package lmcosta.twitter
{
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.IOErrorEvent;
	import flash.events.SecurityErrorEvent;
	import flash.net.URLLoader;
	import flash.net.URLRequest;

	public class GetTweets extends MovieClip
	{
		internal var usuario			:String;
		internal var url				:String;
		internal var tag				:String;
		internal var qtdTweets		    :int;
		internal var arrTweets		    :Array;
		internal var dataTweets		    :Array;

		public function GetTweets() { }

		/**
		 *
		 * @param	_user:String;
		 * @param	_tag:String;
		 * @param	_qtd:Number;
		 */
		public function configTwitter(_user:String,_tag:String,_qtd:Number):void
		{
			this.usuario = _user;
			this.tag = _tag;
			this.qtdTweets = _qtd;
			this.carregaXML();
		}
		/**
		 * Responsavel pela chamada do XML
		 */
		public function carregaXML():void
		{
			this.url = "http://search.twitter.com/search.atom?q=+from:" + this.usuario + "&rpp=" + this.qtdTweets + "&tag=" + this.tag
			var urlReq:URLRequest =  new URLRequest(this.url);
			var loader:URLLoader = new URLLoader();

			loader.addEventListener(Event.COMPLETE, parserDados);
			loader.addEventListener(IOErrorEvent.IO_ERROR, IOError);
			loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, SError);

			this.addEventListener(TwitterEvents.PARSER_COMPLETO, onComplete);

			loader.load(urlReq);
		}
		/**
		 * Responsavel por tratar os dados vindos
		 * do XML
		 * @param	e:Event
		 */
		public function parserDados(e:Event):void
		{
			if (e.target.data)
			{
				this.arrTweets = new Array();
				this.dataTweets = new Array();

				var twitterXML:XML =  new XML(e.target.data);
				var tweetList:XMLList = twitterXML.children();

				var tweetItem:String;
				var timeItem:String;

				for (var i:int = 0; i < tweetList.length(); i++)
				{
					//Assim traz o HTML
					//tweetItem = tweetList[i].*::content;
					tweetItem = tweetList[i].*::title;
					timeItem = tweetList[i].*::published;

					if (timeItem != "")
					{
						timeItem = timeItem.split("T").join(" - ");
						timeItem = timeItem.split("Z").join("");
						dataTweets.push(timeItem);
						arrTweets.push(tweetItem + dataTweets);
					}
				}
				dispatchEvent(new TwitterEvents(TwitterEvents.PARSER_COMPLETO));
			}
		}

		private function IOError(e:Event):void
		{
			trace("IO Error!");
		}
		private function SError(e:Event):void
		{
			trace("Security Error!");
		}
		/**
		 * Dispara um evento ao completar o recebimento
		 * @param	e:TwitterEvents
		 */
		private function onComplete(e:TwitterEvents):void
		{
			dispatchEvent(new TwitterEvents(TwitterEvents.DADOS_RECEBIDOS));
		}
		/**
		 * Retorna os dados
		 */
		public function get dados():Array
		{
			return this.arrTweets;
		}
	}

}

TwitterEvents.as

  • Uma classe de eventos personalizada que informa quando os dados já estão completos (URLRequest) e quando o “parser” já foi finalizado.
/**
 * @author: Lucas Marçal
 * @version: 1.0
 * @email: inbox@lucasmarcal.com.br
 * @link: www.lucasmarcal.com.br/blog
 */
package lmcosta.twitter
{
	import flash.events.Event;

	public class TwitterEvents extends Event
	{
		public static const PARSER_COMPLETO:String = "PARSERCOMPLETO";
		public static const DADOS_RECEBIDOS:String = "RECEBEU";
		/**
		 *
		 * @param	tipo:String
		 * @param	bubbles:Boolean
		 * @param	cancel:Boolean
		 */
		public function TwitterEvents(tipo:String,bubbles:Boolean=false,cancel:Boolean=false)
		{
			super(tipo, bubbles, cancel);
		}
	}

}

Consome.as

  • Responsável por criar uma instancia da classe GetTweets
/**
 * @author: Lucas Marçal
 * @version: 1.0
 * @email: inbox@lucasmarcal.com.br
 * @link: www.lucasmarcal.com.br/blog
 */
package lmcosta.twitter
{
	import flash.display.MovieClip;
	import lmcosta.twitter.GetTweets
	import lmcosta.twitter.TwitterEvents

	public class Consome extends MovieClip
	{
		public var resultTwitter:GetTweets

		public function Consome()
		{
			this.resultTwitter =  new GetTweets();
			this.resultTwitter.configTwitter("lmcosta", "", 1);
			this.resultTwitter.addEventListener(TwitterEvents.DADOS_RECEBIDOS, initLista);
		}
		/**
		 * Responsavel por criar a lista dos Tweets
		 * Aqui você pode distribuir os itens como
		 * achar melhor.
		 * @param	e
		 */
		private function initLista(e:TwitterEvents):void
		{
			trace("Pronto para iniciar lista: ");
			trace(this.resultTwitter.dados);
		}
	}

}


Veja o post original no blog do autor aqui!  

Lucas Marçal

Escrito por Lucas Marçal @ http://www.lucasmarcal.com.br/blog/
Saiba mais sobre o autor na sua pagina de perfil
Outros posts do autor:
» Flash Builder 4 Disponível para Download
» Chegou a hora, FlashCampBrasil to chegando!
» Consumindo dados do Twitter com Actionscript 3.0

Deixe um comentário



Spam Protection by WP-SpamFree

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 2795 entradas vindas de 53 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos

GOOGLE

Votação


Deveria o RedeRia agregar conteúdo em inglês?
Ver Resultados

AUTORES


Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com