2009-06-16 194 views
2

我有一個Facebook應用程序發佈在Facebook平臺,我用Facebook API邀請朋友,我成功地創建邀請表,但問題是,當你邀請朋友,併發送邀請和邀請請求發送到用戶和用戶接受它這個朋友,可以再邀請朋友在Facebook應用程序

邀請例如好友列表再次出現:

我在我的名爲X的好友列表中的朋友,當我發出邀請,他邀請被髮送,並且X接受邀請,並且當我嘗試再次發送邀請時,朋友X再次出現在我可以選擇發送邀請的列表中意味着我可以向該用戶發送邀請(X),並且他已經在玩遊戲,我需要知道如何解決此問題,這樣朋友纔會出現在朋友列表中(僅供邀請),而不會使用該應用程序的朋友。

我在下面的鏈接 My Game application 訪問應用程序,並準確地看到了問題,邀請他們將再次出現後的朋友這是正常的在任何遊戲應用程序?

先感謝您的任何答覆

回答

3

在FBML如果您使用的是friend-selector你可以傳遞一個數組exclude_ids。如果您使用api查找已在使用應用程序的用戶朋友,則可以通過這種方式排除它們。

這也適用於multi-friend-selector它位於一個fb:request-form標籤內。

EDIT:用戶排除陣列可通過API調用Friends.getAppUsers來獲得。

以下示例使用.NET Facebook Developer Toolkit。 (主要是因爲這就是我以前做過!)

後面的代碼:

public string CURRENT_USER_FRIENDS = ""; 

//Call this function on pageload or where you like 
private void PopulateFriendsData() 
{ 
//exclude friends who already have the app from the inviter 
string UsersToExclude = string.Empty; 
IList<long> AppUserFriends = this.Master.API.friends.getAppUsers(); 
foreach (long L in AppUserFriends) 
{ 
    UsersToExclude += L.ToString() + ","; 
} 
CURRENT_USER_FRIENDS = UsersToExclude.TrimEnd(','); 
} 

PAGE:

<fb:multi-friend-selector 
actiontext="Select the friends you want to invite" 
rows="3" 
exclude_ids="<%=CURRENT_USER_FRIENDS%>"/> 
+0

我如何添加這些ID的它是在頁面sourece和我設置除了代碼之外,不會知道用戶朋友,所以我可以在後面的代碼中設置這些ID嗎?我在asp.net 2008下使用C#並且多朋友選擇器是FBML標籤而不是HTML標籤,我可以從後面的代碼傳遞它的屬性值我該怎麼做? – Ahmy 2009-06-16 14:51:34