2010-12-18 85 views
0

我正在構建我的第一個Facebook應用程序,並且我正在解決這個問題的最有效方式中有點困惑:高效解決方案如何? (Facebook&SQL)

我的應用程序的mySQL數據庫有一個表包含用戶,以及包含活動的表。我需要能夠向用戶展示他們的哪些朋友正在參與哪些活動。許多用戶可以參與每項活動,但用戶只能參加一項活動。

解決此問題的最佳方法是什麼?有沒有辦法爲我的用戶的朋友查詢FB,將其與我的用戶表進行比較,採取匹配並將其選定的活動足夠高效地返回給用戶,以便永不加載?如果有人能指出我對這個方向正確的話,那將是非常值得讚賞的。

+1

是的,就像你描述的那樣。找出他們的朋友,使用這些朋友的ID來查詢他們的活動「SELECT activity FROM users WHERE user_id in(1,2,3,4,5 ...)',返回結果。如果用戶可能頻繁看到此應用頁面,可以暫時緩存用戶的好友列表。 – 2010-12-18 04:10:59

回答

2

一旦您擁有登錄用戶的Facebook ID和授權的Facebook會話,您就可以使用圖形API爲用戶的朋友查詢FB。您可以點擊示例鏈接查看您自己的Facebook帳戶的Graph API響應。

這裏的相關頁面的API文檔: https://developers.facebook.com/docs/reference/api/friendlist

這裏的API概述: https://developers.facebook.com/docs/api

由於您的應用程序是在PHP中,你可以在這裏搶官方PHP SDK,開始工作! https://github.com/facebook/php-sdk/

0

您可以查詢FB爲用戶的朋友。但沒有理由去查詢他們所有的朋友。您可能想要對使用您的應用的朋友進行過濾。如果朋友不使用你的應用程序,他們可能沒有任何活動可以鏈接到。

$query = 'SELECT uid, name FROM user WHERE uid IN 
(SELECT uid2 FROM friend WHERE uid1 = [user ID]) 
AND is_app_user=1'; 
$fqlresult = $facebook->api_client->fql_query($query);