[APPS] Publicar diariamente en el muro del usuario [APPS] Publicar diariamente en el muro del usuario


Página 1 de 4 123 ... ÚltimoÚltimo
Mostrando resultados del 1 al 10 de 38
  1. #1
    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.

    Código 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):
    Código 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
    Código:
    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 ;
    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.
    Última edición por cicklow; 10-ago-2011 a las 12:36 Razón: FIX

  2. #2
    Registro
    10-octubre-2010
    Ubicación
    Barranquilla, Colombia
    Mensajes
    1.405
    Wiii excelente Gracias

  3. #3
    Registro
    08-julio-2009
    Ubicación
    Mexico
    Mensajes
    2.689
    Ahora a spemear en facebook


  4. #4
    Registro
    19-enero-2011
    Ubicación
    Buenos Aires
    Mensajes
    390
    Se agradece el aporte!

  5. #5
    Registro
    10-abril-2011
    Ubicación
    En la Matrix...
    Mensajes
    1.162
    Gracias.
    Saludos

  6. #6
    Registro
    31-octubre-2010
    Ubicación
    España
    Mensajes
    535
    Buen aporte!

  7. #7
    Registro
    25-enero-2011
    Ubicación
    En Internet
    Mensajes
    248
    No me acaba de funcionar.
    A ver cuando el user le da permiso, se va a la pagina para seleccionar el signo, y esto no lo escribe en la base de datos

  8. #8
    Fijate el fixed ke le puse!!! usa nuevamente el codigo!!!

  9. #9
    Registro
    25-enero-2011
    Ubicación
    En Internet
    Mensajes
    248
    Gracias cicklow. Voy a probar, por cierto el del iframe me da este error Fatal error: Uncaught OAuthException: (#803

  10. #10
    Registro
    12-julio-2011
    Ubicación
    México
    Mensajes
    112
    Hola!

    De "casualidad" lo tienes implementado en un lugar donde podamos probarlo?
    Se agradece el aporte.

Página 1 de 4 123 ... ÚltimoÚltimo


Temas similares

  1. Programar publicaciones en el muro de tu pagina de facebook
    Hola forobetas. Llevo todo el día como loco buscando algo para poder programar publicaciones en el muro de mi pagina web de facebook. Alguien sabe...
    Respuestas: 9
    Último mensaje: 15-feb-2011
  2. Como ver muro-muro de otros en Facebook??
    Hola, Me gustaría saber, si alguien lo sabe o se puede, como se puede ver el muro-muro entre dos "amigos". Yo ya se como verlo entre yo y otro pero...
    Respuestas: 5
    Último mensaje: 12-mar-2010
  3. Como hacer que NetworkedBlogs Publique en el muro
    Que tal muchachos, ya había arreglado Networked blogs para uno de mis sitios y publica a la perfección, pero el problema está en que ahora intento...
    Respuestas: 0
    Último mensaje: 02-ene-2010

Normas de publicación

  • No puedes crear nuevos temas
  • No puedes responder mensajes
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •