2011-10-21 67 views
1

当您通过Graph API访问某人的脸书朋友时,是否可以通过教育进行过滤?我正在努力使网站只显示某人在某所学校就读的朋友。现在,我可以通过拨打电话获得用户的朋友,然后迭代每个朋友,进行后续调用并检查他们的教育数据是否匹配,但这看起来效率很低,需要很长时间才能工作。想法?见下面我的代码:Facebook Graph API:按照教育历史筛选Facebook朋友

def set_up_graph 
    @access_token = @facebook_cookies["access_token"] 
    @graph = Koala::Facebook::API.new(@access_token) 
    @profile = @graph.get_object("me") 
    @friends = @graph.get_connections("me","friends") 
end 

def find_network_friends 
    @netfriends = Set.new 
    @friends.each do |friend| 
    id = friend["id"] 
    tempf = @graph.get_object(id) 
    education = tempf["education"] 
    unless education == nil 
    education.each do |ed| 
     if ed["school"]["name"] == "Pomona College" 
     @netfriends.add(id) 
     end 
    end 
    end 
end 

回答

0

你看着FQL

+0

刚刚发现,现在我努力尝试捡起它。我可以使用这个查询: “SELECT uid2 FROM friend WHERE uid1 = me()” 让我所有的朋友,但不幸的是,它不会让我添加“教育”(和“隶属关系”和“位置”)到选择部分。我觉得可能有办法做到这一点,所以我现在深入研究,有什么想法? –

+0

另外,刚才看到你可以使用多重查询,但唯一的例子是在PHP中,我使用的是Ruby,所以这需要一些时间来弄清楚。 –