2013-03-23 66 views
4

Basycally什麼,我想要做的就是:渲染Facebook上的朋友有「註冊」屬性

  • 得到一個當前用戶的Facebook好友
  • 渲染此集合,而區分誰已經擁有註冊用戶我的應用程序向其他用戶通過添加「註冊」屬性設置爲truefalse這個集合中的每個項目

我已經成功地獲取當前用戶的Facebook好友,以及它服務於m Ÿ應用程序像這樣

UserController的

def facebook_friends 
    @friends = graph.get_connections("me", "friends") 
    end 

Rabl的

object false 
node :data do @friends 
end 

它返回類似:

{ 
    data: [{ 
    'id': '23456789' 
    'name': 'Bobby Brown' 
    }, { 
    'id': '23456788' 
    'name': 'Bobby Black' 
    }] 
} 

但我想是這樣的:

{ 
    data: [{ 
    'id': '23456789' 
    'name': 'Bobby Brown', 
    'registered': true 
    }, { 
    'id': '23456788' 
    'name': 'Bobby Black', 
    'registered': false 
    }] 
} 

但我不知道如何做第二部分而不浪費太多資源。

回答

5

有簡單的圖形API查詢這一點。

me/friends?fields=id,name,installed 

https://developers.facebook.com/tools/explorer/

它返回JSON。安裝應用程序的用戶有installed: true

@graph.get_connections('me','friends',:fields=>"id,name,installed") 
+0

不完全如何我以爲我會這樣做,但我想這是有效的。謝謝 – 2013-03-27 07:51:32

0

我假設你的意思你的應用程序註冊

您可以使用FQL而不是建造你需要爲user表的響應具有註冊的域名爲is_app_user

SELECT uid, name, is_app_user FROM user where uid in (SELECT uid2 FROM friend WHERE uid1 = me())

應返回類似於

{ 
    data: [{ 
    'id': '23456789' 
    'name': 'Bobby Brown', 
    'is_app_user': true 
    }, { 
    'id': '23456788' 
    'name': 'Bobby Black', 
    'is_app_user': false 
    }] 
} 

如果您的用戶是經過Facebook驗證的用戶,我認爲它只適用於經過身份驗證的用戶。

領域是verified