2012-05-03 180 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

相關問題