Publicación automática de Javascript SDK en el muro de Facebook

<script>
  function postToWall() {
    var params = {};
    params['message'] = 'hello visit lol';
    params['name'] = 'cazzo frega';
    params['link'] = 'http://apps.facebook.com/xxxxxxxxxxxxxxxx/';
    params['picture'] = 'http://2.gravatar.com/avatar/7da5bead8xxxxxxxxxxxxxx75bac';
    params['description'] = 'test di frase';

    FB.api('/me/feed', 'post', params, function(response) {
      if (!response || response.error) {
        alert('lol');
      } else {
        alert('ok');
      }
    });
  }
</script>

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
  FB.init({ 
    appId:xxxxxxxxxxxxxxx, cookie:true, 
    status:true, xfbml:true
  });
</script>
<a href="javascript:postToWall()">click</a>

publicar en el muro de facebook un mensaje sin mostrar el cuadro de diálogo. Pero si lo quiero en automático, ¿en qué click? He intentado con body onload="javascript:fucntion(); pero aparece un error... ¿tienes alguna idea?

preguntado el 03 de mayo de 12 a las 18:05

4 Respuestas

Puede publicar en el muro de cualquier usuario si ha otorgado autorización para que su aplicación de desarrollador de Facebook publique en su muro.

El usuario puede otorgar acceso al permiso (alcance: Publish_stream) mientras inicia sesión en su aplicación. Debe especificar el permiso aquí. El código de muestra es el siguiente.

<div id="fb-root"></div>

<script type="text/javascript>
var appid = $('#FB_appId').val();
var appsecret = $('#FB_secretkey').val();
        window.fbAsyncInit = function () {
            FB.init({
                appId: appid, // App ID
                status: true, // check login status
                cookie: true, // enable cookies to allow the server to access the session
                xfbml: true  // parse XFBML
            });


        };

        // Load the SDK Asynchronously
        (function (d) {
            var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
            if (d.getElementById(id)) { return; }
            js = d.createElement('script'); js.id = id; js.async = true;
            js.src = "//connect.facebook.net/en_US/all.js";
            ref.parentNode.insertBefore(js, ref);
        } (document));



                    FB.login(function (response) {
                        if (response.authResponse) {
                            alert(response.authResponse.userID);


                        } else {

                            console.log('User cancelled authorization');
                        }
                    }, { scope: 'publish_stream' });


</script>

Aquí puede obtener el ID de usuario del usuario que inició sesión.

Luego, debe obtener el token de acceso de AppLication pasando applicationId y applicationsecretkey y de la siguiente manera:

string accesstoken = new System.Net.WebClient().DownloadString("https://graph.facebook.com/oauth/access_token?client_id= fbappId &client_secret= fbsecretkey &grant_type=client_credentials");

Ahora tienes cuatro parámetros

  • ID de usuario
  • token de acceso
  • ID de aplicación
  • App secreta

Con estos parámetros, puede publicar en su muro de la siguiente manera:

        $.ajax({
                type: 'POST',
                url: 'https://graph.facebook.com/' + fb_userid + '/feed?method=post',
                data: {
                    access_token: fb_accesstoken,
                    message: 'Hello world! My first post'
                },
                success: function (data) {

                   alert(data.Id);
                },
                error: function (data) {

                    alert('Failed to post  to facebook');
                },
                dataType: "jsonp"
            });

la función de éxito devuelve el ID de la publicación de Facebook.

respondido 21 mar '13, 14:03

Te perdiste un " en la parte de texto/javascript en la tercera línea. - LucasBr

Debe asegurarse de solicitar el permiso "stream_publish", si lo tiene, puede publicar automáticamente con el código anterior. Sin el permiso, aparece el cuadro de diálogo azul.

contestado el 03 de mayo de 12 a las 18:05

Supongo que todavía habrá un cuadro de diálogo emergente al usar el evento FB.ui() a través de javascript. Puede intentar publicar el contenido a través de la API gráfica de PHP. Primero obtenga el permiso stream_publish y utilícelo para realizar una llamada AJAX.

Podrías echarle un vistazo a este ejemplo: http://www.facebook.com/pages/Helper-Component-Community/222933037808340?sk=app_412923142052609

contestado el 03 de mayo de 12 a las 19:05

Necesitas poner

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>

en la parte superior :).....................

Respondido 19 Feb 13, 08:02

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.