2012-10-31 20 views
-1

可能重複:
How to get user’s network information using Facebook Graph API? (PHP)隨着Facebook棄用其REST API,關聯會發生什麼?

我怎樣才能獲得Facebook的用戶屬於哪個大學或高中的網絡?之前有affiliations元素,但它不在新的Graph API中。

+0

我檢查了它,但它是舊的,不回答我的問題。 – bbboy

+0

它確實 - 用戶表上的FQL'affiliations'字段仍然返回此信息 - 我在那裏添加了一個示例調用 – Igy

回答

1

無法使用Graph API獲取此信息。圖API的user object包含workeducation的密鑰,但這些密鑰與用戶的網絡附屬機構不同,後者無法通過圖形API訪問。

你需要做的是使用FQL。您可以使用user tableaffiliations列來獲取用戶的網絡從屬關係。如果這是真的你想做什麼,那麼這就是你需要知道的。

但是,如果(看起來有可能)您對用戶的網絡從屬關係並不嚴格感興趣,而是對他們的教育歷史有更廣泛的興趣,請注意!如上所述,affiliations與Facebook數據中的workeducation不同。不能保證已經進入特定高中或大學的用戶進入其個人資料的「教育」部分也加入了該學校或大學的網絡......但是他們可能擁有。更糟糕的是,例如,如果有人在他們的教育部門增加了一所大學並且加入了該大學的網絡,那麼該大學可能會在的不同名字的「網絡」欄和「教育」欄中出現。這意味着獲得一份完整的清單而沒有重複的學校或大學有人蔘加是不平凡的,並將需要一些聰明的黑客在你的最終。

例如,從用戶表中選擇affiliationseducation的時候,我的一個朋友表示像這樣:

"affiliations": [ 
     { 
      "nid": 16777585, 
      "name": "Oxford University", 
      "type": "college" 
     }, 
     { 
      "nid": 33585181, 
      "name": "Queens College, Taunton", 
      "type": "high school" 
     } 
     ], 
     "education": [ 
     { 
      "school": { 
      "id": 110611448960664, 
      "name": "Queens College, Taunton" 
      }, 
      "type": "High School" 
     }, 
     { 
      "school": { 
      "id": 16686610106, 
      "name": "University of Oxford" 
      }, 
      "type": "College" 
     } 
     ] 

注意,她的教育部分包括「牛津大學」,但在她的隸屬關係,它是'牛津大學'。如果您希望能夠清楚地吸引用戶的教育歷史,那麼您需要做一些巧妙的事情來確定這些內容是否重複。

要了解您所面臨的混亂情況,請運行this query以查看您所有朋友的「教育」和「關聯」字段。

祝你好運!