facebook程式設計-JavaScript SDK

facebook的JavaScript SDK可以使用在FB的App,或是facebook外的網站,

當你在網頁的程式碼中加入JavaScript SDK載入的語法,你就可以輕易地抓取瀏覽者的facebook資料,

但是如果對方沒有公開基本資料,你就必需讓對方接受你的應用程式,才能獲得更進一步的使用者資訊。

(從這個角度來看,如果用戶不僅慎管理自己的應用程式,那麼資料外洩的風險很高)

載入JavaScript SDK的語法很簡單,你只要緊接著標籤貼上(2012.10.16 更新):

這樣你就可以開始使用JavaScript SDK的語法了。

參考facebook JavaScript SDK文件,可以看到它的語法分成五類:

  1. Core Methods:核心程式。
  2. Auth Methods:驗證使用者的登入狀態。
  3. Event Handling:事件處理,共11種事件類型。
  4. XFBML:使用XFBML標籤。
  5. Canvas Methods:與FB畫布相關的功能。

Core Methods

透過 FB.api 取得登入者的資料,只需要打上:

FB.api('/me', function(response) {
    alert(response.name);
});

至於可以傳回那些資料,就要參考Graph API文件。

不過我在測式的過程中,有的時候會抓不到資料,所以也沒有想像中那麼的好用。

當你呼叫FB.ui,就可以執行Old REST API裡的方法,程式參考架構如下:

function callFBui() {
    FB.ui(
        {
            method: 'stream.share', //方法名稱
            //這裡放該方法的屬性值
        }
    );
}

Auth Methods (2012.10.16 新增)

Auth Methods 提供了用戶帳號的狀態,主要用來驗證登入以及應用程式的授權,參考程式碼如下:

FB.getLoginStatus(function(response) {  //取得FB登入狀態
    if (response.status === 'connected') {
        //用戶已登入並且已授權應用程式
    }
    else if (response.status === 'not_authorized') {
        //用戶已登入但沒有授權應用程式存取資料
    }
    else {  //用戶未登入
    }
});

Event Handling (2012.10.16 新增)

事件的使用方法如下,subscribe 代表開始聆聽(監視)事件是否發生,unsubscribe 則是取消聆聽(監視)。官網有列出所有的事件種類以及 response 的回傳值。

FB.Event.subscribe('edge.create',   //事件名稱,edge.creat表示用戶按讚
    function(response) {
        alert('您按下讚的網址是:' + response);
    }
);

XFBML

在載入JavaScript SDK時,如果FB.init中的”xfbml”是”true”,那麼不需要再額外撰寫語法,就可以在網頁中使用XFBML。

如果一開始沒有開啟XFBML語法的使用,則必需要加入下列程式碼:


本篇只針對JavaScript SDK程式架構做說明,實際應用範例請參考後續介紹。