2012-05-03 209 views
0
<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> 

发布在墙上的facebook消息whidouth显示对话框。 但是,如果我想让它在自动,whidouth点击? 我有尝试白衣身体onload =“javascript:fucntion();但得到一个错误...你有什么想法?在Facebook墙上的Javascript sdk auto pubblish

回答

0

你需要确保你要求”stream_publish“权限,如果你有它,你可以用上面的代码自动发布,如果没有权限,它会弹出蓝色对话框

0

你需要把

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

在最前面:).....................

3

您可以发布给任何用户如果他已授权您的Facebook开发者应用程序在他的墙上发布信息,那么就可以了。

用户在登录到您的应用程序时可以授予访问权限(范围:Publish_stream)。您必须在此指定权限。示例代码如下。

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

在这里,您可以获取登录用户的userId。

然后你必须让应用程序通过传递的applicationID和applicationsecretkey的accessToken和如下:

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

现在,你有四个参数

  • 用户ID
  • 的accessToken
  • 的AppId
  • AppSecret

使用这些参数,你可以张贴到他的墙如下:

 $.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" 
      }); 

成功函数返回的Facebook帖子的ID。

+0

您错过了“关于第三行的文本/ javascript部分。 – LucasBr

相关问题