InicioApuntes Y MonografiasPublicar diariamente en el muro del usuario

Publicar diariamente en el muro del usuario


Aclaración inicial, este tutorial no lo hice yo, en fuente puse el link original.

Publicar diariamente en el muro del usuario

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 .


<?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
    
@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


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 ;


Bueno, espero les sea de su agrado, pronto pondré más tutos ya sea hechos por mi o los que encuentre en internet.
Datos archivados del Taringa! original
0puntos
228visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

D
Daniel03🇦🇷
Usuario
Puntos0
Posts78
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.