Crear una aplicación de Frases para Facebook: Publicar en muro de amigo

Este articulo hace parte de la vieja API de Facebook, para más información sobre la nueva API te recomiendo leer Funcionamiento de la Graph API de Facebook.

Hasta el momento nuestra aplicación de frases con opción de publicar en nuestro muro la frases, tabs y comentarios debe ir algo así:
La aplicación es funcional pero no tiene ese toque social que puede hacer crecer a la aplicación: Publicar frases en el muro de nuestros amigos. Con esto es que podemos hacer conocer la aplicación y también enviando invitaciones pero de eso hablare en otro post. Para poder realizar esto usaremos el método propio de Facebook llamado Stream.publish del cual ya había hablado en un post anterior.

<script>
function publicar(){
var mensaje = "<?php echo $frases[$frase]; ?>";
var user_message_prompt = "¿Deseas comentar algo?";
var user_message = "Que buena frase!";
var attachment = {'media':
[{'type':'image',
'src':'https://brianur.info/logo.png',
'href':'http://apps.facebook.com/tuaplicacion/'}],
'name': mensaje +'<br />',
'description':'Frases Urban'};
var target_id = <? echo $_POST['friend_sel']; ?>;

Facebook.streamPublish(user_message,attachment,'',target_id,user_message_prompt);
}
publicar();
</script>

Continuar leyendo…

[Tip] Crear una web en varios idiomas

Hace algún tiempo estuve creando una web que fuera multi-idioma pero tenía algo no muy agradable, el usuario tenia que seleccionar el idioma de su preferencia primero para poder acceder al contenido. Para aumentar la usabilidad del sitio hice este pequeño script que toma automáticamente el idioma por defecto del navegador del usuario y de esta forma muestra el contenido:

<?php
 $languaje = getenv("HTTP_ACCEPT_LANGUAGE");
 $idioma = substr($languaje, 0, 2);
 if ($idioma == "es"){
 include("espanol.php");
 }
 elseif ($idioma == "en"){
 include("english.php");
 }
 else {
 echo "Unsupported language"; /*como alternativa pueden incluir un idioma por
defecto: include("english.php");*/
 }
?> 

Crear una aplicación de Frases para Facebook: Tabs y comentarios

Este articulo hace parte de la vieja API de Facebook, para más información sobre la nueva API te recomiendo leer Funcionamiento de la Graph API de Facebook.

Continuando con el tutorial de como crear nuestra propia aplicación de frases para Facebook, explicare como agregar tabs/pestañas para mostrar las secciones que queramos y también añadiremos un formulario para que los usuarios puedan dejar comentarios.

Tabs

De seguro ya has visto las pestañas en Facebook ya que son muy comunes. Básicamente se usan para organizar en secciones el contenido de la aplicación y su uso es bastante fácil, solo necesitaremos usar un par de etiquetas FBML: fb:tabs y fb:tab-item.

<fb:tabs>
<fb:tab-item href="index.php" title="Inicio" selected="true" />
<fb:tab-item href="comentarios.php" title="Comentarios" />
</fb:tabs>

Usando el anterior código tendríamos de una forma muy sencilla dos pestañas, usando el atributo title le asignamos un titulo o nombre a cada una y de igual forma usando href sus respectivos enlaces a la web de cada sección. Para que la pestaña aparezca como seleccionada usamos el parámetro selected=»true». También se podría usar el parámetro align para que las pestañas se alineen al sentido que se quiera ya que por defecto es a la izquierda.

Continuar leyendo…

Recopilacion de videotutoriales de PHP y MySQL en español

Una interesante forma de aprender un lenguaje de programación es con el uso de VideoTutoriales, ya que puedes pausarlos o repetir alguna parte en la que tengas una duda cuantas veces quieras. Así que si tu interés es aprender PHP y MySQL desde cero con este método, te dejo unos cursos recomendados:

Curso de PHP y MySQL de illasaron.com

Es posiblemente el curso más conocido de PHP y MySQL en español, creado por el maestro Jesús Conde de Séptimo Continente Virtual. Este curso esta dividido en 5 categorías en los que se ve desde lo más básico a cosas más avanzadas como programación orientada a objetos, creación de un CMS y entre muchos temas más. En total 60 vídeos.

Ver curso en linea.

Curso de PHP y MySQL de cesarcancino.com

Este curso fue iniciado desde este año, desarrollado por César Cancino. En total van 26 vídeos de PHP y MySQL y 5 vídeos de PHP orientado a objetos. Se inicia desde lo básico en PHP, uso de MySQL, PHPmyAdmin, CSS, sesiones, métrica y otros temas.

Ver los Videotutoriales de PHP y MySQL.
Ver los Videotutoriales de PHP orientado a objetos.

Crear una aplicación de Frases para Facebook

Este articulo hace parte de la vieja API de Facebook, para más información sobre la nueva API te recomiendo leer Funcionamiento de la Graph API de Facebook.

De seguro haz visto muchas veces en Facebook aplicaciones que dan frases como por ejemplo la galleta de la fortuna o otras de Frases de celebridades, chistes y cualquier tipo de cosas que uno se pueda imaginar. Para crear este tipo de aplicaciones existe una aplicación (…) que genera automáticamente todo lo necesario para tener nuestra propia aplicación de Frases en Facebook, lo malo de usar este servicio es que no nos permite modificar la aplicación a nuestro antojo y las posibles ganancias que podamos tener son para ellos.

Por esta razón, explicare como desarrollar una aplicación generadora de Frases, que será sencilla pero útil y con el tiempo le iremos agregando más funcionalidades.

Generar frases aleatoriamente con PHP

Lo primero que haremos será crear un script que imprima aleatoriamente frases que tengamos en un archivo de texto plano que llamaremos archivofrases.txt. En este caso podríamos también usar una base de datos MySQL, pero para no hacer el tutorial extenso lo haremos de esta forma que es más sencilla pero de igual forma funcional.

<?php
$archivo ="archivofrases.txt";
$frases = file("$archivo");
$frase = rand(0, sizeof($frases)-1);
echo "<h2>".$frases[$frase]."</h2>";
?>

Si tienes dudas con el anterior código, tal vez te interese Leer archivos de texto usando PHP la única novedad es el uso de la función rand. Si hacen la prueba en su servidor, cada vez que recarguen la pagina aparecerá una frase aleatoria. Cada frase en el archivo debe estar en una linea diferente.

Integrar el generador de frases en PHP con Facebook

Para este paso si nunca haz trabajado con el desarrollo de aplicaciones en Facebook te recomiendo el articulo: Primeros pasos para generar aplicaciones de Facebook así que necesitaras tener conectado Facebook con tu servidor.

Creamos una función en Javascript llamada publicar, en la que usaremos el método Stream.publish propio de Facebook para poder publicar en el muro la frase.

<script>
  function publicar(){
	var mensaje = "<?php echo $frases[$frase]; ?>";
  	var user_message_prompt = "¿Deseas comentar algo?";
  	var user_message = "Que buena frase!";
 	var attachment = {'media':
  					 [{'type':'image',
  					   'src':'https://brianur.info/logo.png',
  					   'href':'http://apps.facebook.com/tuaplicacion/'}],
  					   'name': mensaje +'<br />',
  					   'description':'Frases Urban'};

  	Facebook.streamPublish(user_message,attachment,'','',user_message_prompt);
  }
</script>

Solo deben modificar la anterior función con los datos de su aplicación. Por ultimo crearemos un botón llamado Publicar Frase, con el que invocaremos la función publicar:

<input type="button" name="frase" value="Publicar Frase" onclick="publicar();" />

Eso es todo por el momento, después explicare como poder realizar invitaciones a la aplicación, agregar comentarios a la aplicación, agregar tabs/pestañas entre otras cosas.

Leer archivos de texto usando PHP

Anteriormente había escrito como Crear TXT con PHP, pero veo que me falto comentar algunos detalles importantes, así que voy a completar el anterior mini-tutorial, explicando como leer archivos de texto usando PHP.

Cuando usamos la función fopen debemos especificar en el segundo parámetro (pasándolo como string) la razón por la que queremos usar el archivo en concreto, ya sea para lectura o escritura. Me explico, anteriormente para la creación de archivos había usado:

$archivo = fopen ("muriba.txt", "w+");

Lo que hace w+ es tomar el archivo muriba.txt y hace una apertura para lectura y escritura. Si el archivo no existe el intentara crearlo, pero deben darle permiso de escritura, de lo contrario PHP arrojara un error. Si el archivo de texto ya posee una información, este será reemplazado totalmente, así que no es recomendable usar w+ si más adelante queremos añadir texto sin que el anterior se borre. Para poder escribir en un archivo sin afectar el contenido del mismo es recomendable usar el modo a. Para entender un poco mejor esto, tienen a su disposición una tabla con cada uno de los modos que pueden ser usados con fopen:

Funcion fopen
modODescripción
‘r’Apertura para sólo lectura; coloca el puntero al archivo al principio del archivo.
‘r+’Apertura para lectura y escritura; coloca el puntero al archivo al principio del archivo.
‘w’Apertura para sólo escritura; coloca el puntero al archivo al principio del archivo y trunca el archivo a longitud cero. Si el archivo no existe se intenta crear.
‘w+’Apertura para lectura y escritura; coloca el puntero al archivo al principio del archivo y trunca el archivo a longitud cero. Si el archivo no existe se intenta crear.
‘a’Apertura para sólo escritura; coloca el puntero al archivo al final del archivo. Si el archivo no existe se intenta crear.
‘a+’Apertura para lectura y escritura; coloca el puntero al archivo al final del archivo. Si el archivo no existe se intenta crear.
‘x’Creación y apertura para sólo escritura; coloca el puntero al archivo al principio del archivo. Si el archivo ya existe, la llamada a fopen() fallará devolviendo FALSE y generando un error de nivel E_WARNING. Si el archivo no exite se intenta crear. Esto es equivalente a especificar las banderas O_EXCL|O_CREAT para la llamada al sistema open(2) subyacente.
‘x+’Creación y apertura para lectura y escritura; coloca el puntero al archivo al principio del archivo. Si el archivo ya existe, la llamada a fopen() fallará devolviendo FALSE y generando un error de nivel E_WARNING. Si el archivo no existe se intenta crear. Esto es equivalente a especificar las banderas O_EXCL|O_CREAT para la llamada al sistema open(2) subyacente.

Continuar leyendo…

Hacer trampa en ponleestiloatuvida.com

Como no le veo ya ninguna gracia a ese concurso, voy a publicar la forma de hacer trampa, antes de comentar cualquier cosa para los que han seguido este concurso de forma limpia solo les puedo decir Bazinga! mucha gente hace trampa y tienen muchaaaaas visitas.

El primer método es usando el script que publique anteriormente para borrar cookies de flash y acompañado de eso pueden usar un frame que se actualise cada X segundos, abren varias pestañas con ese mismo html y listo. Esta es la forma para Windows 😛

La segunda forma es usando un «shell script» que me paso el patas que sería la forma NoWindows:

while [ `echo 1` ]; do
wget "http://www.ponleestiloatuvida.com/index.php?opcion=pp&a=actualizarVotos&id_usuario=IdDelTramposo" -O perra
done

Abren varias consolas con ese script y listo 😉

Borrar cookies de Flash

Yo sé que muchos de los visitantes de mi blog deben conocer qué es una cookie, para los que no sepan las cookies son las encargadas de guardar las sesiones de las webs donde accedemos, a petición de la misma web y de esta manera nos evita estar logueandonos a cada rato. Flash también usa unas ‘cookies’ llamadas Local Shared Objects, que básicamente lo que hacen es guardar información de una aplicación Flash para posteriormente usarla. Para poder borrar y administrar los Local Shared Objects podemos hacerlo manualmente desde el Administrador de configuración de Adobe.

El uso es simple, podemos eliminar todos los sitios o seleccionar un sitio, eliminarlo ó decidir hasta cuanta información puede almacenar ese sitio. Pero se puede presentar alguna situación en la que necesitamos borrar constantemente los sitios y si lo hacemos manualmente nos podemos demorar mucho tiempo, para ello 0zK4Rr escribió un script en batch que hace ese trabajo por nosotros:

@echo off
:borra
cd %appdata%\Macromedia\Flash Player
rmdir /S /Q #SharedObjects
cls
mkdir #SharedObjects
cls
ping -n 2 localhost>nul
goto borra