Facebook的iOS presentRequestsDialogModallyWithSession返回选定的朋友
我正在开发一个iOS应用程序,我希望能够通过Facebook发送邀请到我的应用程序,我设法使用presentRequestsDialogModallyWithSession
但我也希望我的应用程序知道邀请函发给谁。这可能吗?
是的,这是绝对可能的。 以下是获取用户向其发送邀请的用户朋友列表的方法。
在presentRequestsDialogModallyWithSession中必须有一个像这样的处理器:
handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
你可以在resultURLvariables中得到响应URL的结果。 如果通过使用这种方法将其转换为string
[resultURL parameterString]
fbconnect:// success?request = 57985658213xxxx&to%5B0%5D = 13xxxxxxx9&to%5B1%5D = 1000000xxxxxxx3
这里,请求后的第一个参数=“57985658213xxxx&to”是请求标识,其余参数用“&to%5B0%5D =”和“&to%5B1%5D =”分隔的是朋友的Facebook标识。 在这里,我已经邀请了两个人,他们是:13xxxxxxx9,1000000xxxxxxx3
而不是所有的数字,我把XXXXXXX放在上面的id,因为我不想在这里公开显示我的朋友的Facebook的ID在这里;)
添加到regeint的答案,使用后将返回的URL转换为一个string
NSString* fbResponse = [resultURL absoluteString];
我遍历我发送给presentRequestsDialogModallyWithSession (按顺序)的Facebook朋友列表,并创build以下正则expression式,从返回的URLstring中提取朋友的Facebook ID:
(?:to%5B0%5D\=)(\d+)
其中0是我想要的项目的索引,在这个例子中是第一个。
注意:虽然这个工作,我觉得整个解决scheme很脆弱。 它对来自presentRequestsDialogModallyWithSession的响应不敏感。 一个更好的解决scheme可能是放弃Objective-C类,并通过HTTP请求进行graphics调用,这将有望返回JSON,而不是像JavaScript一样 – 更健壮。