2011-08-26 65 views
1

我正在嘗試獲取Facebook用戶的遊戲列表。要做到這一點,我使用的Graph API電話查詢Facebook用戶的最愛遊戲

https://graph.facebook.com/MY-USER-ID/games 

的反應看起來像這樣對我特別的測試帳號:

{ "data": [ { "name": "CityVille", 
       "category": "Games/toys", 
       "id": "CITYVILLEID", 
       "created_time": "2011-08-24T01:14:32+0000" } ] 

所以,我正在與用戶關聯的應用程序之一(在用戶的收藏夾欄)。但是,該應答缺少用戶在其收藏夾中的其他四個應用。有什麼理由爲什麼這個迴應會不完整?我已經檢查了應用程序的隱私設置,它們與所有其他已安裝應用程序的Cityville相同。

第二個相關問題是,我試圖將上述遊戲調用中返回的遊戲與FQL應用程序表中的項匹配。我採用了上面的響應返回的id,並使用它作爲我的FQL索引的匹配索引。

SELECT app_id, display_name, category, subcategory 
FROM application WHERE app_id = CITYVILLEID 

不過的CityVille的特殊情況下,ID在上面的圖形API調用返回,是應用程序的Facebook頁面(資料頁)的ID,而不是在FQL表的ID。所以我的查詢結果是空的。最終我在應用程序FQL表中找到了條目,但它是通過canvas_name查找的。

我的第二個問題是,是否有任何方法通過facebook API將圖API中的遊戲與FQL應用程序表中的應用程序條目相關聯?

回答

1

這是documentation說怎麼樣/user/games

Games the user has added to the Arts and Entertainment section of their profile. 

不具有任何與遊戲(Facebook應用程序)的用戶播放。我不認爲有任何方法可以直接獲取該列表。

相同的文檔報告了使用user_games_activity擴展權限讀取用戶遊戲得分的可能性(/user/scores)。我對分數API並不熟悉,所以我可能在這裏錯了:這可能會導致你玩遊戲,但顯然只有那些用這種方法保存分數的遊戲。

1

圖API中的遊戲邊緣是指與應用程序相關聯的頁面 ...因此,您從該頁面獲得的ID是頁面的ID,並且與應用程序的ID不匹配。一般用戶並不喜歡他們所玩遊戲的所有頁面,所以我不會推薦使用這種方法。從頁面ID到關聯的應用程序ID也沒有可靠的方法。

MartinodF是正確的,目前沒有辦法列出用戶的應用程序,但這是我們正在考慮的未來。如果的一種方式,那麼只有當用戶授予您012B擴展權限時,纔會允許它。

+0

感謝您的確認! – MartinodF