22

我想使用圖api開放圖2操作來執行類似facepile的操作:從自定義對象和自定義對象中,給我朋友(使用我的Facebook應用程序)對此對象執行此操作。檢索打開圖2中對自定義對象執行自定義操作的朋友列表

問題是,使用FQL,我無法查詢自定義對象和操作。 。使用圖形API,我無法找到一個方法來相交的好友列表中有我感興趣的對象

我能做的最好是使用圖形API的批處理模式如下:

batch=[ 
    // First we get the list of friends that are using my facebook application 
    { "method": "GET", "relative_url": "fql?q=SELECT+uid+FROM+user+WHERE+uid+IN+(SELECT+uid1+FROM+friend+WHERE+uid2=me())+AND+is_app_user=1+LIMIT+0,49", "name": "friends"}, 
    // Then query each friend to get the list of objects that went through my namespace:testaction 
    { "method": "GET", "relative_url": "{result=friends:$.data.0.uid}/namespace:testaction" }, 
    { "method": "GET", "relative_url": "{result=friends:$.data.1.uid}/namespace:testaction" }, 
    ... 
    { "method": "GET", "relative_url": "{result=friends:$.data.49.uid}/namespace:testaction" } 
] 

這是非常低效的,沒有充分解決我的問題,因爲:

  • 我還是要過濾結果只得到匹配 對象我想
  • 如果是人的一個在命名空間中的對象的數量ARGE:testaction,我不得不通過傳呼,做更多的查詢(我儘量減少查詢的數量)

你看到一個更好的方式來做到這一點?

+0

嘗試使用Facebook活動插件w /自定義打開圖形操作,因爲我描述[這裏](http://stackoverflow.com/a/11769117/1342440) – 2012-08-01 23:49:01

+0

情況是否改變了,還是我們仍然需要使用批量請求? – Till 2012-08-23 08:36:26

回答

3

現在已經可以用一個圖表API請求,要做到這一點:

GET https://graph.facebook.com/me/friends?limit=50&fields=name,namespace:testaction.limit(100) 

field expansionupdates to the graph API

+0

只要幾天時間就可以申請我的賞金 - 對不起,但非常感謝,讓我們知道。 – Till 2012-09-03 16:34:34

+0

只是爲了展示FB API的可變性。希望將來不會被抽出或修改。 – derickito 2012-09-05 18:55:59

6

這可能不是你正在尋找的東西,但鑑於facebook(AFAIK)沒有提供(也可能永遠不會提供)這樣做的能力。我認爲你應該簡單地存儲這些信息,然後從你自己的數據庫中查詢數據。這就像你在問你做什麼,但你可以優化它,因爲它是你的數據庫。

我確定你已經想過了,但有人不得不說。

+0

我真的只想使用Facebook API。我目前正在複製數據,並希望遷移到完整的facebook-api解決方案。 – Scharron 2012-02-14 09:00:36

+2

就像我在我的回答中所說的「這可能不是你正在尋找的東西」,但是如果你正在尋找一個完整的facebook api解決方案,那麼你僅限於facebook會讓你做的。無論你想要多少,都無法解決這個問題。 FQL不會讓你這樣做,API不會讓你這樣做。無論你是否依賴Facebook,只做他們讓你做的事情,或者你複製數據並做你想做的事情。就這麼簡單,沒有隱藏的解決方案。再次,可能不是你想聽到的。 – derickito 2012-02-14 15:41:36

3

如果derickito給出的答案還不夠,您應該探索在Facebook白名單(又名成爲合作伙伴)上獲取您的應用程序,以獲取該功能可能存在的私有Graph API,但不適用於使用公共圖形API卡住的「普通」應用程序。

相關問題