Google Code Prettify

取得Facebook 粉絲團相關資訊

最近因為社群之星比賽緣故,碰到一個需求就是要把粉絲團的訊息做為系統的資料來源。因此,我們可以透過Facebook API
做到這需求,因此,就必須先去解如何去操作Facebook的API。在使用Facebook API之前,必須先去Facebook developer註
冊一組帳號,也可以說這是一組金鑰,後續相關操作都會跟這金鑰有關。

註冊Fackbook Apps,並取得金鑰

1.首先先登入Facebook Developers網站,選擇[ Apps ]
image
2.選擇[ 建立新的應用程式 ]
image
3.此時就會要你輸入一些相關資訊,依照上面指示填寫就可以,其中應用程式名稱空間必須使用小寫字母
image
4.點選確認後,就會出現下面基本訊息,其中最重要的APP ID & APP Secret的那一串數值。若是你目前沒有要在FB上開發相關
程式或是運用話,下面一些設定暫時可以不用管他,這樣就完成申請動作了
image
這樣申請完之後,我們可以去Use Graph API Explorer試試看成果

利用Use Graph API Explorer測試相關功能

1. 用Facebook的Use Graph API Explorer試著去取得粉絲團訊息,當我們送出相關指令時,會發現出現Token錯誤,主要是
上面的存取代碼必須設定,不然發生沒有權限存取的狀況,不過,若是透過C#寫的話,又可以用另一種方式處理了這後面會
提到,因此必須去取的相關性的Token,此外,Graph API語法類似OData概念,若是不是很懂得話,其實也可以透過旁邊的
選項,用點選方式就會產生相關的指令了
image
這邊選擇[ 取得存取代碼 ]去產生所需要的Token
image
之後會出現一個彈跳視窗,這邊主要目的是要抓取粉絲團的訊息,所以,我們可以先勾選public_stream,就會取得相關的Token,
不過,我發現之後要去抓其他的東西,例如圖片,也是可以共用的。點選完畢後,再點選Get Access Token就可以產生相關代碼
image
點選Get Access Token就會出現存取代碼,再存取代碼地方就會出現一大串數值,這之後再去操作下面的指令,這樣就可以取得粉
絲團的留言了
image

C#抓取相關Facebook資訊

以上大致上就完成80%,就可以輕易地取得粉絲團留言了。再來,就是如何透過C#抓取相關資訊了。
在C#內要用FB資訊,可以透過Jquery取得,也可以透過C#內部程式碼方式去取得,這邊會說明如何透過C#取得相關資訊,首先,
必須下載Facebook套件來用。這樣做法會是最簡單的,我們可以透過NuGet,打入Facebook,就可以取得Facebook相關元件,將
其參考進來就可以。
image
一開始可以宣告一個FacebookClient,然後這邊需要給予一個Token編號,不過,這裡Token可不是上面所敘述的存取代碼,所以,
我們需要產生一個Token編號。
1var s = new FacebookClient("要給一個Token");
image
那要如何取得呢?可以透過下面網址方式取得,此時,這邊就必須要用到剛剛註冊後的App ID & App Secret內的金鑰了,分別填入
這兩個金鑰值,然後去瀏覽器執行就可以得到相關Token
1https://graph.facebook.com/oauth/access_token?client_id=FB_App ID&client_secret=App Secret&grant_type=client_credentials
image
然後就透過C#能去執行之前在Graph API上的指令就可以,這邊回傳的訊息會是採用JSON格式 
1strig me = s.Get("474374195974113/posts?fields=message,picture&limit=3").ToString();
對於回傳的資料格式處理方式可以參考[ASP.NET]使用JSON.NET在Server端操作JSON資料,就可以了
下面列出一些範例,可以把指令貼到Graph API內執行
抓取每本相簿內兩張照片:
粉絲團ID?fields=albums.fields(name,type,description,id,link,photos.limit(2).fields(picture,height,width))
取得前兩筆留言: 
粉絲團ID/posts?fields=message,picture&limit=3

參考資料