2011-09-13 37 views
3

我一直在谷歌搜索2天,並找不到任何明確的。我遇到的所有結果都使用不再適用的不推薦使用的代碼。請幫忙。Facebook JS SDK - 在權限檢查後發佈到牆上

我需要一個按鈕,點擊上...

  1. 檢查延長權限
  2. 如果權限尚未授予,要求他們(user_likes,offline_access,publish_stream)
  3. 獲得權限後,發佈後用戶的牆壁
  4. 允許我推牆的帖子給用戶,而他們是離線

有人可以協助嗎?

+0

感謝OffBySome這個例子。看着它,我可以看到我非常接近解決方案,但錯過了包含response.authResponse的FB.login。我今晚將實施這個計劃,並報告我的發現。 – Steve

+0

關於offline_access,任何人都可以確認此權限不需要爲了發佈而無需用戶交互?我知道這是一個灰色區域,但用戶知道這會發生,並且必須特別選擇允許它。但是,我的理解是,發佈到離線用戶的牆的能力需要這樣做,因爲自動發佈:true被禁用。使用用戶ID,我只需要包含auth令牌**而不需要**需要offline_access? – Steve

+0

昨天晚上我實現了由OffBySome發佈的示例,並且它運行得非常漂亮。謝謝:) – Steve

回答

9

這很簡單。您可以調用FB.login來獲得擴展權限。然後你可以調用FB.ui發佈一個狀態(或FB.api調用/ me/feed發佈而不需要用戶交互,這是令人不悅的)。爲了能夠在以後推送牆貼,您需要將access_token存儲在服務器上供以後使用。

<!DOCTYPE html> 
<html> 
<body> 
<div id="fb-root"></div> 
<a href="#" onclick="return postToWall();">Post To Wall</a> 
<script src="//connect.facebook.net/en_US/all.js"></script> 
<script> 
    FB.init({ appId: '**appID**', status: true, cookie: true, xfbml: true, oauth: true }); 

    function postToWall() { 
    FB.login(function(response) { 
     if (response.authResponse) { 
     FB.ui({ 
      method: 'feed', 
      name: 'Facebook Dialogs', 
      link: 'https://developers.facebook.com/docs/reference/dialogs/', 
      picture: 'http://fbrell.com/f8.jpg', 
      caption: 'Reference Documentation', 
      description: 'Dialogs provide a simple, consistent interface for applications to interface with users.' 
     }, 
     function(response) { 
      if (response && response.post_id) { 
      alert('Post was published.'); 
      } else { 
      alert('Post was not published.'); 
      } 
     }); 
     } else { 
     alert('User cancelled login or did not fully authorize.'); 
     } 
    }, {scope: 'user_likes,offline_access,publish_stream'}); 
    return false; 
} 
</script> 
</body> 
</html> 
+0

請注意[OAuth2遷移日期爲10月15日](http://developers.facebook.com/blog/post/555/),之後所有應用都需要使用OAuth2。爲了啓用這個功能,你需要在'FB.init'調用中添加'oauth:true'並將'perms'改爲'scope'。 – steveax

+0

@ steveax:你是對的。我忘了,抓住了我的一個老例子。我更新了這個例子。 – bkaid

+0

好的交易,也可能想要調用FB庫協議不可知的:''鑑於即將到來的SSL要求。 – steveax

相關問題