取得Facebook資料,是使用官方提供的Graph API,使用的話基本上相當的簡單,選擇你要取得哪種資料,然後將access_token帶上就可以了,如果要取得好友名單的話,就是直接拉下面這個網址的值就好。
https://graph.facebook.com/me/friends?access_token=...
Facebook的Graph API回應都是以JSON型態表示,像是下面這樣
{ "data": [ { "name": "Heineken", "id": "500078123" }, { "name": "Stolichnaya", "id": "504027123" }, { "name": "Johnny Walker", "id": "516035123" } ] }
使用Facebook C# SDK呼叫的方法如下,在取得access_token後使用SDK去呼叫。
Facebook.FacebookAPI api = new Facebook.FacebookAPI(access_token); JSONObject meFriends = api.Get("/me/friends");
取得的JSONObject很聰明,格式會隨著取得的資料改變,取得friends的格式會像下面這樣
Dictionary<string,Array[Dictionary<string,string>]>
然後將資料取出後就可以自行運用了,我只有簡單的放在表格裡而已。
取用的語法大致如下,Token就是之前取得的access_token。
Facebook.FacebookAPI api = new Facebook.FacebookAPI(Token); JSONObject meFriends = api.Get("/me/friends"); DataTable dt = new DataTable(); dt.Columns.Add("icon", typeof(string)); dt.Columns.Add("id", typeof(string)); dt.Columns.Add("name", typeof(string)); for (int i = 0; i < meFriends.Dictionary["data"].Array.Length; i++) { dt.Rows.Add("https://graph.facebook.com/" + meFriends.Dictionary["data"].Array[i].Dictionary["id"].String + "/picture", meFriends.Dictionary["data"].Array[i].Dictionary["id"].String, meFriends.Dictionary["data"].Array[i].Dictionary["name"].String); } GridView1.DataSource = dt; GridView1.DataBind();
如果是取likes的資料,結果就長得像下面。
基本上使用Facebook C# API取得資料還蠻簡單的,就看取得資料後要怎麼運用了。
請問在表格內 大頭貼那一欄 我顯示的是一段網址
ReplyDelete而不是圖片 請問為什麼會這樣@@
因為...那個網址是圖片的網址,我只是把它直接顯示成圖片,不是原本的網址。
ReplyDelete不好意思,請問如何把網址傳回圖片?
Delete我是直接把圖片網址塞到img url內
Delete請問要如何才能抓到登入的使用者名單 謝謝
ReplyDelete/me 裡面就有啦
ReplyDelete