Publicar en el muro con el PHP SDK

Una de las cosas más habituales en una aplicación es publicar contenido del usuario en su muro o en el de un amigo, así que para continuar trabajando con los métodos que nos provee el PHP SDK veremos como hacerlo. Para el caso de querer publicar en el muro de un amigo se debe reemplazar /me/feed por /IDAmigo/feed, no olvides que para que el código funcione tienes que autenticar el usuario y pedir el permiso extendido publish_stream.

<?php
$parametros=array('message' => 'Aprendiendo a desarrollar aplicaciones en Facebook',
				  'name' => 'BrianUR.info',
				  'caption' => 'Mi primer aplicacion en Facebook',
				  'link' => 'https://www.brianur.info',
				  'description' => 'Es genial',
				  'picture' => 'https://brianur.info/brianur.png',
				  'actions' => array(array('name' => 'Entra ya!',
                                      'link' => 'https://www.brianur.info')));
$facebook->api('/me/feed','post',$parametros);
?>

  26 Comentarios

  1. Maky   •  

    hey una pregunta donde en que aprte del codigo pongo el parametro publish_stream. no entiendo esa parte de los permisos ¡_¡

  2. Marcos   •  

    Hola Brian.

    Muchas gracias por tu aporte DE VERDAD. Des`pues de MUCHO tiempo buscando ejemplos que explicaran bien como publicar en facebook externamente, AL FIN LO HE ENCONTRADO!!!

    Gracias de nuevi por tu aporte a la comunidad

    Marcois

  3. kevin   •  

    amigo creo que esta forma ya no sirve porque me sale este error Fatal error: Uncaught OAuthException: (#368) The action attempted has been deemed abusive or is otherwise disallowed thrown

  4. fernando   •  

    Amigos excelente articulo, tengo 3 dudas.
    Primero: la pagina del facebook la tengo que crear en mi servidor, como enlazo lo que quiero mostrar en esa pagina y como añado una publicacion a la pagina.
    Segundo: para que me sirve el access token y como lo uso
    Tercero: Cuando realizo una publicacion en mi muro con el post el mensaje que envio es bastante extenso como coloco el leer mas.. :$

    gracias por su tiempo.. 😀

  5. Sebastian Gonzalez   •  

    AYUDA!

    function facefaceimagen($mensaje, $imagenform) {

    // ID y Secret ID de la aplicación
    $appId = «**************************»;
    $secret = «***********************»;
    //Llamada al Facebook SDK
    include_once «config/facebook.php»;
    // Instanciamos el objeto Facebook
    $facebook = new Facebook(array(‘appId’ => $appId,
    ‘secret’ => $secret,
    ‘cookie’ => true));

    $parametros2=array(
    ‘source’ => ».$imagenform.»,
    ‘message’ => ».$mensaje.»,
    ‘access_token’ => ‘**************************************************’);

    $facebook->api(‘/283421131690091/photos’,’post’,$parametros2);

    }

    Pero me da el siguiente error: Fatal error: Uncaught OAuthException: (#324) Requires upload file thrown in /home/custus/public_html/config/base_facebook.php on line 1039

    Que estoy haciendo mal?

    Saludos.!

    • Zied   •  

      hola;
      cómo se resolvió este problema
      muchas gracias

  6. David S   •  

    A la primera duda me respondo yo mismo. Se puede configurar la aplicación creada dentro de tu cuenta del facebook y marcar el nivel de privacidad de los comentarios subidos por dicha aplicación.

    Si consigo respuesta para mi segunda duda también la postearé aquí por si a alguien le surge el mismo problema.

    Saludos a tod@s,

  7. David S   •  

    Hola Brian, antes que nada gracias por tu aportación. Dos dudas.

    1.- Los mensajes que subo al muro tienen privacidad «solo yo» y tengo que ir al facebook y cambiarla a mano. Se puede hacer esto de manera automática por medio de un parámetro?

    2.- Cree una aplicación para poder subir fotos a facebook. Como no le marco el álbum donde lo debe guardar me crea un álbum con el nombre de la aplicación que cree. Todo funciona bien. En este caso el álbum creado es público (para mi esta bien que sea así) pero solo publica en el muro la primera vez que se sube una imagen, las demás imágenes las sube bien pero no las publica en el muro. Sabrías como «obligarlo» a que toda imagen subida pase por el muro?

    Muchas gracias y enhorabuena por la página.

  8. Sebastian Gonzalez   •  

    Braian, ya descubri como hacerlo, asi que si quieres publicalo…

    lo que hay que modificar es lo siguiente:
    1. en el array message hay que agregar la siguiente linea: ‘access_token’ => ‘ACCESS TOKEN DE LA FAN PAGE’);
    2. en vez de /me/feed ponemos /ID_DE_FAN_PAGE/feed

    Ambas cosas las obtenemos en la siguiente url: https://graph.facebook.com/me/accounts?access_token=TU ACCESS TOKEN

    y de esta manera publicamos en nuestra fan page no como user sino como page, Saludos!

  9. Meme   •  

    tienes que hacer una funcion que obtenga los access_token de la página donde quieres publicar a partir del identificador de página:
    getPage: function(idpag, callback) {
    FB.api(‘/me/accounts’, function(response) {

    accTk = false;
    for (var i = 0, l = response.data.length; i < l; i++) {
    var fbPages = response.data[i];

    if (fbPages.id == idpag) {
    accTk = fbPages.access_token;

    } else {
    // alert('No encontrado ' + fbPages.id);
    }
    }
    fb.accTk = accTk;

    callback(accTk);
    return (accTk);
    },
    { scope: 'read_stream,publish_stream'}

  10. Brian Urban   •     Autor

    Voy a mirar un poco el asunto y cuando tenga algo lo publicaré 😉

  11. Sebastian Gonzalez   •  

    Alguien me puede recomendar como hacerlo?

    Gracias!

  12. Sebastian Gonzalez   •  

    Hola Brian, primero que nada, gracias por la rapidez, jeje eh estado leyendo algo de eso si, el permiso ya lo pedi, y lo tengo con mi app de face, pero puedo publicar en el muro de la page, pero como user no como page, estube leyendo esto:

    This connection corresponds to the Page’s Wall. You can create a link, post or status message by issuing an HTTP POST request to the PAGE_ID/feed connection. To see more details please see links, posts, and status messages documentation.

    To impersonate the Page when posting to the wall (i.e. post as the Page, and not the current user), you must use a Page access_token with the manage_pages and publish_stream permissions, as described under Page Access Tokens above.

    el access token se que debo ponerlo en el array(‘message’ => pero no se de donde obtenerlo, se entiende? con el token del user funciona, pero no se de donde obtener el token de la page para que ella misma publique en su muro, se entiende?

    Gracias!

  13. Sebastian Gonzalez   •  

    Hola Brian, gracias por toda la info… me funciona barbaro, pero ahora quiero publicar en mi pagina de facebook, no en mi muro personal, sino en una page, tengo que ponerle el access token me imagino no? pero no encuentro de donde sacarlo, o sea de donde saco ese numero?

    Saludos!

  14. Brian Urban   •     Autor

    Intenta usando cookies/sesiones, así decides cada cuanto tiempo haga las publicaciones.

  15. Santiago   •  

    Como puedo hacer para que se publique solo una vez en el muro? pasa que cuando vuelvo a entrar en la aplicacion me vuelve a publicar en el muro, imagino que se deberia comprobar si el usuario ya tiene instalada la aplicacion o algo asi… puedes orientarme con eso… Saludos.-

  16. Brian Urban   •     Autor

    ¿Cómo qué el score? no entiendo la pregunta, igual sea lo que sea para publicar automáticamente es pasarle los parámetros que uno quiera en el momento que suceda alguna acción por el usuario y ya.

  17. kevin   •  

    bueno brian no importa lo anterior

    pero me podrias desir como publicar el score automaticamente?

  18. kebin   •  

    bueno lo que hice fue hacerme una cuenta nueva agregue mi ceunta verdare, en el codigo puse miid/feed

    la cual cuando entre a la aplicacion envio una publicacion al feed de mi cuenta real, pero cuando elimino mi cuenta real de mis amigos entro nuevamente a la aplicacion pero esta me manda error a que se deve eso gracias

  19. Santiago   •  

    Muchas gracias por compartir tu conocimiento, me ayudo bastante a hacer una pequeña aplicacion, saludos y espero que sigas con los tutoriales

  20. Brian Urban   •     Autor

    Básicamente es la repetición de ese mismo código tomando amigos aleatoriamente, en el anterior articulo sobre el PHP SDK escribí un ejemplo de algo parecido.

  21. kevin   •  

    gracias, otra consulra lo que pasa es que he entrado en algunas aplicaciones la cual me envia publicaciones al muro de muchos amigos como puedo lograr eso?

  22. Brian Urban   •     Autor

    Sí, hay que sacar el ID del amigo en especifico para que funcione.

  23. kevin   •  

    bueno cambie me/feed con IDAmigo/feed pero me manda error
    o en idamigo tengo que poner una id de un amigo?

  24. kevin   •  

    Como publico con el php-sdk en el perfil de mis amigos?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *