Creación de un widget de Twitter en Flash 3
En la sección final de este tutorial vamos a tener que configurar algunos problemas de seguridad para que la película Flash para leer los datos de Twitter cuando subirlo a nuestro sitio web. El Flash Player tiene restricciones de seguridad que impida la carga de datos desde otro servidor. Nos vendrá sobre esta cuestión de la siguiente manera:
- Creación de un archivo PHP para poder recuperar los datos en nuestro servidor.
- Creación de un archivo de política entre dominios para permitir Twitter para comunicarse con nuestro servidor.
Creación de un archivo de proxy PHP
Vamos a empezar por crear el proxy archivo PHP que copiar los datos de Twitter. Para ello podemos utilizar el código siguiente readymade he encontrado en Internet:
<?php
/*
* @return string
* @param string $url
* @desc Return string content from a remote file
* @author Esau Torrecilla
*/
function get_content($url)
{
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_HEADER, 0);
ob_start();
curl_exec ($ch);
curl_close ($ch);
$string = ob_get_contents();
ob_end_clean();
return $string;
}
#usage:
$content = get_content («http://twitter.com/statuses/user_timeline.xml?screen_name=EsauTorrecillaM»);
echo $content;
?>
Configuración de la directiva de dominio de la Cruz
Una política entre dominios de un sitio web es un archivo que concede permisos a otros sitios web para actualizar el contenido de dicho sitio. Nuestro poder de PHP tendrá que utilizar los datos de Twitter, y para ello, tenemos que permitir el acceso a nuestro sitio web Twitter.
Creación de un archivo es fácil. Sólo tiene que utilizar el bloc de notas para crear un archivo de texto en blanco y pegue el siguiente en el mismo. Este código es bastante auto-explicativo:
<?xml version=»1.0″?>
<!DOCTYPE cross-domain-policy SYSTEM «http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd»>
<cross-domain-policy>
<allow-access-from domain=»www.twitter.com» />
<allow-access-from domain=»twitter.com» />
</cross-domain-policy>
Tendrá que guardar este archivo como crossdomain.xml y luego subirlo al directorio raíz de su sitio web, es decir, la misma carpeta en la que el índice se coloca presentar su página de inicio.
Volver a la FLA
Todos nuestros guiones están listos, tenemos que actualizar nuestro código ActionScript ahora para que no intente cargar los datos de Twitter directamente y en su lugar carga el archivo PHP en su lugar. Para hacer esto simplemente actualizar el objetivo de su ). carga ( método:
myXMLLoader.load(new URLRequest(«twitter.php»));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void{
var myXML:XML = new XML(e.target.data);
tweet_1.text = myXML.status[0].text;
tweet_2.text = myXML.status[1].text;
tweet_3.text = myXML.status[2].text;
tweet_4.text = myXML.status[3].text;
}
follow_btn.addEventListener(MouseEvent.CLICK, onFollow);
function onFollow(e:MouseEvent):void{
navigateToURL(new URLRequest(«http:///twitter.com/EsauTorrecillaM»));
}
follow_btn.buttonMode = true;
Ahora puede exportar el archivo SWF y luego subirlo junto con el twitter.php secuencia de comandos en la misma carpeta.
Ahora puedes acceder a tu película en línea para ver los últimos tweets!
Avisos importantes Acerca de la versión en línea
Debido a las restricciones de la API de Twitter, ningún usuario se le permite hacer más de 150 solicitudes por hora en el servidor de Twitter. Esto significa que si su sitio web recibe un gran número de éxitos, este widget siempre dejará de cargar los datos al final de cada hora y por tanto el número de solicitudes excede las 150. El límite de solicitud del API se restaura cada hora.
Es posible superar este problema mediante el uso de un avanzado script PHP que recupera automáticamente los datos de Twitter en tiempos periódicos a lo largo de la hora para que la solicitud al servidor es independiente de las visitas de los usuarios actuales de su widget. Sin embargo, esto va más allá del alcance de este tutorial.
Hola, estoy haciendo el ejercicio para meter twitter a un flash, pero a la hora de reproducirlo no funciona, de hecho en el flash cuando le doy verificar actions, me sale un error, me dice que es en esta linea
función processXML (e: Event): void {
Lo que estaba viendo es que pones la palabra función con acento dentro del codigo, no se si sea por eso, saludos
Hola, gracias por responder, pero sigue sin funcionar este es el codigo que tengo:
var myXMLLoader: URLLoader = new URLLoader ();
myXMLLoader.load (new URLRequest («twitter.php»));
myXMLLoader.addEventListener (Event.COMPLETE, processXML);
function processXML (e: Event): void {
var myXML: XML = new XML (e.target.data);
tweet_1.text myXML.status = [0] texto.;
tweet_2.text = myXML.status [1] texto.;
tweet_3.text myXML.status = [2] texto.;
tweet_4.text = myXML.status [3] texto.;
}
follow_btn.addEventListener (MouseEvent.CLICK, onFollow);
onFollow function (e: MouseEvent): void {
(New URLRequest («http:///twitter.com/aztequin»)) navigateToURL;
}
follow_btn.buttonMode = true;
En la carpeta en donde tengo los archivos tengo lo siguiente:
crossdomain.xml
flash_entwitter.swf
index.html
twitter.php
y donde hago las pruebas es:
http://dao-comunicacion.com/web_arqmov/twitter_flash/
gracias, saludos