2012-03-06 57 views
0

基本上,我剛剛開始爲我們的網站獲取Facebook Open Graph操作的一些開發。現在我已經成功實現了Facebook動作和對象,但由於Facebook文檔沒有展示很多高級示例,所以我們在這裏陷入困境。Facebook開放圖前操作認證

我想在頁面上有一個按鈕,將行動發佈到用戶的牆上。不過,如果用戶未登錄Facebook或驗證Facebook應用程序,則JavaScript會引發錯誤。

使用Facebook文檔中的示例,這是我到目前爲止在我的頁面上的內容。

我的問題是我如何適應這個檢測用戶是否登錄到Facebook和/或與我的Facebook應用程序進行身份驗證?如果用戶未被檢測到登錄/認證,則顯示一個登錄按鈕而不是下面的共享按鈕。

如果Facebook已登錄,是否可以顯示分享按鈕,就像使用下面的代碼時一樣?

<script type="text/javascript"> 
function shareme() 
{ 
FB.api('/me/gradtouch:discover&company=URL','post', 
       function(response) { 
     if (!response || response.error) { 
       alert('Error occured'); 
     } else { 
      alert('Post was successful! Action ID: ' + response.id); 
      } 
    }); 
} 
</script> 

感謝感激任何幫助,指導或即使它在那裏我可以閱讀更多的關於我怎麼能寫的東西能做到這一點的方向。

回答

1

即使世界一些方法來檢測用戶是否登錄或沒有,可能是最有用的是訂閱「auth.statusChange」事件

http://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/

這應該被稱爲當FB SDK完成初始化,具有用戶狀態(無論他們是否已登錄到FB,他們是否已添加您的應用程序,他們是否完全沒有登錄..請參閱:http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

然後,您可以顯示相關按鈕,如果您需要用戶登錄,只需使用權限y調用FB.login()即可如果他們的登錄狀態發生變化(即他們選擇添加應用程序),則需要再次調用您的事件處理程序。 )

+0

非常感謝這個!希望不太瞭解這個文檔,但快速瀏覽非常有用。乾杯! – GradTouch 2012-03-07 12:45:03