2014-03-12 29 views

回答

5

是的,這是絕對可能的。 以下是獲取用戶向其發送邀請的用戶朋友列表的方式。

在presentRequestsDialogModallyWithSession必須有一個處理一些事情是這樣的:

handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) { 

你可以在resultURL可變響應URL的結果。如果您使用此方法

[resultURL parameterString] 

將其轉換爲字符串,你會得到fbconnect URL,這是這樣的:fbconnect://成功請求= 57985658213xxxx &到%5B0%5D = 13xxxxxxx9 &到%5B1 %5D = 1000000xxxxxxx3

這裏,請求後第一參數=是 「57985658213xxxx &到」,這是請求ID,並且通過分離剩餘的參數 「&到%5B0%5D =」 和 「&到%5B1%5D =」是朋友的臉書ID。在這裏我已經邀請了兩個人,這裏是他們:13xxxxxxx9,1000000xxxxxxx3

而不是所有的數字,我把XXXXXXX放在上面的id,因爲我不想在這裏公開顯示我的朋友的facebook的ID計算器;)

0

爲了增加regeint的回答,返回的URL轉換爲使用字符串

NSString* fbResponse = [resultURL absoluteString]; 

我通過我發送到presentRequestsDialogModallyWithSession(按順序的Facebook好友列表迭代)之後創建的遵循正則表達式進行提取從URL字符串朋友的Facebook ID返回:

(?:to%5B0%5D\=)(\d+) 

其中是我想要的項目的索引,在這個例子中,第一個。

注意:雖然這可行,但我發現整個解決方案非常脆弱。它對來自presentRequestsDialogModallyWithSession的響應不敏感。更好的解決方案可能是放棄Objective-C類,並通過HTTP請求進行圖形調用,該請求有望返回JSON,而不像JavaScript中那樣 - 更健壯。