Cicklow Seguir
Admin
Épsilon
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
¡Usuario popular!
Suscripción a IA
¡Feliz cumpleaños!
- Desde
- 30 May 2011
- Mensajes
- 776
En este tutorial aprenderán a crear una aplicación viral, que publica automáticamente todos los días en el muro del usuario un resultado (texto, horóscopo, etc.).
No vamos a usar ningún SDK, solo código PHP y la Graph API de facebook.
En este ejemplo crearemos una aplicación de horóscopo diario, el horóscopo será leído de un archivo, ese archivo lo tendrán que actualizar ustedes diariamente, o contratar a alguien, o crear un boot que arme el horóscopo automáticamente (eso corre por su cuenta).
Desde ya usaremos MSQL para guardar el access_token del usuario, el cual nos permitirá postear diariamente en su muro.
Ahora el cron diario (se ejecutara todos los dias a las 00hs):
Codigo para crear la tabla en mysql
Esto es todo, espero que les sea de ayuda. Saludos (desde ya esto no está muy bien visto en facebook, asique es pan para hoy hambre para mañana).
También pueden pedir el email y guardarlo en su base de datos.
No vamos a usar ningún SDK, solo código PHP y la Graph API de facebook.
En este ejemplo crearemos una aplicación de horóscopo diario, el horóscopo será leído de un archivo, ese archivo lo tendrán que actualizar ustedes diariamente, o contratar a alguien, o crear un boot que arme el horóscopo automáticamente (eso corre por su cuenta).
Desde ya usaremos MSQL para guardar el access_token del usuario, el cual nos permitirá postear diariamente en su muro.
PHP:
<?php
//Config de tu apps
$app_id = "TU_APP_ID";
$app_secret = "APP_SECRET";
$miappurl = "http://apps.facebook.com/miapps/";
//Verificamos
$code = $_REQUEST["code"];
if(!$code){
//Armamos la url con los permisos a usar!
$dialog_url= "http://www.facebook.com/dialog/oauth?client_id=".$app_id."&redirect_uri=".urlencode($miappurl)."&scope=publish_stream,offline_access";
echo("<script>top.location.href='".$dialog_url."'</script>");
die();
}else{
//Obtenemos el access_token (nos permitira publicar en el muro)
$token_url="https://graph.facebook.com/oauth/access_token?client_id=".$app_id."&client_secret=".$app_secret."&redirect_uri=".urlencode($miappurl)."&code=".$code;
$response = @file_get_contents($token_url);
$params = null;
parse_str($response, $params);
$access_token = $params['access_token'];
//Obtener el uid del usuario
$uid_url = "https://graph.facebook.com/me?fields=id,first_name&access_token=".$access_token;
$dto = @file_get_contents($uid_url);
$dto = json_decode($dto,true);
$user_id = $dto['id'];
$nombre = $dto['first_name'];
//Nos comentamos a nuestra BD
$dbhost = "localhost";
$dbuser = "usuario";
$dbpass = "password";
$dbname = "base_de_datos";
$dbh = mysql_connect($dbhost,$dbuser, $dbpass);
mysql_select_db("$dbname") or die ("Error!");
//Verificamos si el usuario ya existe!
$SQL = @mysql_query("SELECT uid FROM usuarios_face WHERE uid='".$user_id."'");
$ROW = @mysql_fetch_array($SQL);
if($ROW['uid']==""){
@mysql_query("INSERT INTO usuarios_face VALUES('".$user_id."','".$access_token."','".$nombre."','')");
}
//Mostramos el horoscopo
$SIG = array('acuario','aries','capricornio','cancer','escorpio','geminis','leo','libra','piscis','sagitario','tauro','virgo');
echo '<center>Seleccione su signo del zodiaco<br/><form action="'.$miappurl.'?code='.$code.'" target="_top" method="GET"><select name="signo">';
foreach($SIG as $S){
echo '<option value="'.$S.'">'.ucwords($S).'</option>';
}
echo '</select><br/><input type="hidden" name="code" value="'.$code.'"><input type="submit" value="Ver mi horoscopo"></form><br/>';
if($_REQUEST['signo']!=""){
//Guardamos el signo
mysql_query("UPDATE usuarios_face SET signo='".$_REQUEST['signo']."' WHERE uid='".$user_id."'");
//Mostramos el signo
include('horos_'.$_REQUEST['signo'].'.txt');
}
}
?>
Ahora el cron diario (se ejecutara todos los dias a las 00hs):
PHP:
<?php
@set_time_limit(0);
$app_id = "TU_APP_ID";
$app_secret = "APP_SECRET";
$miappurl = "http://apps.facebook.com/miapps/";
$nombreapp = "Horoscopo del dia";
//Nos comentamos a nuestra BD
$dbhost = "localhost";
$dbuser = "usuario";
$dbpass = "password";
$dbname = "base_de_datos";
$dbh = mysql_connect($dbhost,$dbuser, $dbpass);
mysql_select_db("$dbname") or die ("Error!");
$SIG = array('acuario','aries','capricornio','cancer','escorpio','geminis','leo','libra','piscis','sagitario','tauro','virgo');
//cargamos los signos en un array, para no tener que leer el file por cada usuario, evitano cargar el server
foreach($SIG as $S){
$H[$S] = file_get_contents('horos_'.$S.'.txt');
}
//Cargamos todos los usuarios
$SQL = @mysql_query("SELECT * FROM usuarios_face WHERE 1");
while($ROW = @mysql_fetch_array($SQL)){
$posteo_url = "https://graph.facebook.com/"
. $ROW['uid'] . "/feed?"
. "&message="
. "&picture=" . urlencode('http://www.miweb.com/img/'.$ROW['signo'].'.jpg')
. "&link=" . urlencode($miappurl)
. "&name=" . urlencode($nombreapp)
. "&caption=" . urlencode($H[$ROW['signo']])
. "&method=POST"
. "&access_token=" .$ROW['access_token'];
@file_get_contents($posteo_url);
}
die('Terminado');
?>
Codigo para crear la tabla en mysql
Insertar CODE, HTML o PHP:
CREATE TABLE `usuarios_face` (
`uid` DOUBLE NOT NULL ,
`access_token` TEXT NOT NULL ,
`nombre` VARCHAR( 25 ) NOT NULL ,
`signo` VARCHAR( 20 ) NOT NULL ,
INDEX ( `uid` )
) ENGINE = MYISAM ;
También pueden pedir el email y guardarlo en su base de datos.
Última edición: