close

利用MS FaceBook SDK開發WinForm FaceBook應用程式(二) 

前面提到,透過FaceBook來開發應用程式需要進行申請以及下載需要的SDK。[先前的文章]

當您完成了這些動作之後,要在WinForm模式下開發一個FaceBook應用程式相對就簡單很多了。請先在專案中引用先前我們下載的.dll檔案,若您要開發的是WinForm的FaceBook應用程式,需要引用的檔案有:
1.Facebook.dll
2.Facebook.Winforms.dll

正確的引用之後,您就可以在WinForm應用程式中順利的使用FaceBook API了。

由於您開發的是WinForm的FaceBook應用程式,因此在預設的狀況下,使用您應用程式的用戶當然還沒登入FaceBook(請注意,開啟瀏覽器登入和開啟你撰寫的應用程式透過API登入FaceBook是兩回事),因此您撰寫的FaceBook,第一件事情應該就是透過FaceBook API與FaceBook Server聯繫並協助使用主登入FaceBook。

要進行這樣的動作很簡單,只需要透過底下的程式碼即可完成:


facebookService1.ApplicationKey = "你的ApplicationKey";
facebookService1.ConnectToFacebook();

facebookService1是一個元件,請先從工具箱中拖曳出這個元件到表單上:

你會發現它被置於Component Tray,緊接著,就可在專案中撰寫上面的程式碼了。

上面那段程式碼能夠讓你的應用成是建立起與FaceBook Server之間的connection,並且自動跳出底下的視窗,透過這個視窗就能夠讓使用者登入FaceBook(請注意,這個視窗並非是我們應用程式設計的,而是FaceBook網站提供的,透過上面的API呼叫,我們可以在自己的程式中跳出這個由FaceBook Server提供的登入視窗,讓使用者登入):

使用者成功登入後,上面這個視窗會消失,然後就自動跳回我們開發的WinForm Application了。
到這邊,我們已經成功地連線上了FaceBook Server(這表示我們可以自由的呼叫FaceBook API),並且讓使用者順利地登入完成(這表示我們可以透過API取得該使用者的資料了)。

接著,我們來看看如何透過FaceBook API取得用戶的朋友資料,我們先看程式碼,相當簡單只有底下幾行:


//用來儲存抓取到的朋友資料
IList users;
//透過facebookService1取得朋友, Users是朋友資訊的集合物件
users= facebookService1.Friends.GetUserObjects();
//可以把資料直接填入dataGridView
this.dataGridView1.DataSource = users.ToArray();
//也可以透過迴圈列出,或是填入ListBox
foreach (Facebook.Schema.user item in users)
{
this.listBox1.Items.Add(item.name);
}

facebookService1是我們先前拖曳到表單上的Component,透過這個元件我們可以輕易的取得使用者的朋友清單,而朋友清單是以『IList』的集合物件形式回傳(這就是使用MS FaceBook SDK的好處,不然光Parsing XML就很累人了),我們可以直接在程式碼中使用了,你會看到上面的程式碼直接把Users填入dataGridView1的DataSource屬性中。
由於是一個集合物件,我們也可以透過Linq語法查詢,相當有趣:


//在所有朋友清單中,找到特定名稱的朋友

var user = from c in users where c.name == this.listBox1.SelectedItem.ToString() select c;

REF:http://studyhost.blogspot.tw/2010/02/ms-facebook-s...

arrow
arrow
    創作者介紹
    創作者 Johnson峰 的頭像
    Johnson峰

    Johnson峰的部落格

    Johnson峰 發表在 痞客邦 留言(0) 人氣()