簡體   English   中英

Facebook iOS presentRequestsDialogModallyWithSession返回選定的朋友

[英]Facebook iOS presentRequestsDialogModallyWithSession to return selected friends

我正在開發一個iOS應用程序,我希望能夠通過Facebook向我的應用程序發送邀請,我設法使用presentRequestsDialogModallyWithSession

但我也希望我的應用程序知道邀請函的發送對象。這可能嗎?

是的,絕對有可能。 以下是獲取用戶發送邀請的用戶朋友列表的方法。

在presentRequestsDialogModallyWithSession中,必須有一個處理程序,如下所示:

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

您可以在resultURL變量中獲取響應URL的結果。 如果使用此方法將其轉換為字符串

[resultURL parameterString]

您將獲得fbconnect URL,如下所示:fbconnect:// success?request = 57985658213xxxx&%5B0%5D = 13xxxxxxx9&%5B1%5D = 1000000xxxxxxx3

這里,request =之后的第一個參數是“57985658213xxxx&to”,這是請求ID,剩下的參數由“&to%5B0%5D =”和“&to%5B1%5D =”分隔,是朋友的facebook id。 在這里,我已經向兩個人發送了邀請函,其中包括:13xxxxxxx9,1000000xxxxxxx3

而不是所有的數字,我已將xxxxxxx放在上面的ID中,因為我不想在stackoverflow中公開顯示我朋友的facebook id;)

要將返回的URL轉換為使用的字符串,請添加到regeint的答案

NSString* fbResponse = [resultURL absoluteString];

我遍歷我發送給presentRequestsDialogModallyWithSession (按順序)的Facebook好友列表,並創建以下正則表達式,從返回的URL字符串中提取朋友的Facebook ID:

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

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

注意:雖然這有效,但我發現整個解決方案非常脆弱。 它對來自presentRequestsDialogModallyWithSession的響應很敏感,根本不會改變。 一個更好的解決方案可能是放棄Objective-C類並通過HTTP請求進行圖形調用,這有望像Javascript中那樣返回JSON - 更加強大。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM