Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook iOS presentRequestsDialogModallyWithSession返回所选好友_Ios_Iphone_Facebook_Facebook Graph Api_Fbwebdialogs - Fatal编程技术网

Facebook iOS presentRequestsDialogModallyWithSession返回所选好友

Facebook iOS presentRequestsDialogModallyWithSession返回所选好友,ios,iphone,facebook,facebook-graph-api,fbwebdialogs,Ios,Iphone,Facebook,Facebook Graph Api,Fbwebdialogs,我正在开发一个iOS应用程序,我希望能够通过facebook向我的应用程序发送邀请,这是我使用facebook成功做到的 提交请求DialogModAllyWithSession 但我也希望我的应用程序知道邀请发送给了谁。。那可能吗?是的,绝对可能。 以下是获取用户已向其发送邀请的朋友列表的方法 在presentRequestsDialogModallyWithSession中,必须有一个处理程序,如下所示: handler:^(FBWebDialogResult result, NSURL *

我正在开发一个iOS应用程序,我希望能够通过facebook向我的应用程序发送邀请,这是我使用facebook成功做到的 提交请求DialogModAllyWithSession


但我也希望我的应用程序知道邀请发送给了谁。。那可能吗?

是的,绝对可能。 以下是获取用户已向其发送邀请的朋友列表的方法

在presentRequestsDialogModallyWithSession中,必须有一个处理程序,如下所示:

handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
您可以在resultURL变量中获得响应URL的结果。如果使用此方法将其转换为字符串

[resultURL parameterString]
您将获得fbconnect URL,如下所示:fbconnect://success?request=57985658213xxxx&to%5B0%5D=13xxxxxxx9&to%5B1%5D=1000000xxxxxxx3

在这里,request=之后的第一个参数是“57985658213xxxx&to”,这是请求id,其余参数由“&to%5B0%5D=”和“&to%5B1%5D=”分隔,这是朋友的facebook id。在这里,我向两个人发送了邀请,他们是:13xxxxxx9,1000000xxxxxx3


我将xxxxxxx放在上述id中,而不是所有数字,因为我不想在stackoverflow中公开显示我朋友的facebook id;)

将返回的URL转换为字符串后,使用

NSString* fbResponse = [resultURL absoluteString];
我反复浏览我发送给presentRequestsDialogModallyWithSession的Facebook好友列表(按顺序),并创建以下正则表达式从返回的URL字符串中提取好友的Facebook ID:

(?:to%5B0%5D\=)(\d+)
其中0是我想要的项目的索引,在本例中是第一个


注意:虽然这样做有效,但我发现整个解决方案相当脆弱。它对来自PresentRequestsDialogModAlly的响应非常敏感,会话完全不变。一个更好的解决方案可能是放弃Objective-C类,通过HTTP请求进行图形调用,这将有希望返回JSON,而不是javascript中的JSON——更加健壮。

hey User3370459!你找到解决办法了吗?