我正在开发一个iOS应用程序,我希望能够通过Facebook向我的应用程序发送邀请,我设法使用 presentRequestsDialogModallyWithSession
但我也希望我的应用知道邀请函的发送对象。这可能吗?
答案 0 :(得分:5)
是的,这绝对是可能的。 以下是获取用户已向其发送邀请的用户列表的方法。
在presentRequestsDialogModallyWithSession中必须有一个像这样的处理程序:
handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
您可以在resultURL变量中获取响应URL的结果。如果使用此方法将其转换为字符串
[resultURL parameterString]
您将获得fbconnect网址,如下所示:fbconnect:// success?request = 57985658213xxxx& to%5B0%5D = 13xxxxxxx9& to%5B1%5D = 1000000xxxxxxx3
这里,请求后的第一个参数=" 57985658213xxxx& to"这是请求ID,其余参数用"&到%5B0%5D ="和"&到%5B1%5D ="是朋友' facebook id。在这里,我已将邀请函发送给两个人,他们是:13xxxxxxx9,1000000xxxxxxx3
而不是所有数字,我已将xxxxxxx放在上面的ID中,因为我不想向我的朋友展示' facebook id在stackoverflow中公开;)
答案 1 :(得分:0)
在使用
将返回的URL转换为字符串后,添加到regeint的答案NSString* fbResponse = [resultURL absoluteString];
我遍历我发送给 presentRequestsDialogModallyWithSession 的Facebook好友列表(按顺序)并创建以下正则表达式,从返回的URL字符串中提取朋友的Facebook ID:
(?:to%5B0%5D\=)(\d+)
其中 0 是我想要的项目的索引,在本例中是第一个。
注意:虽然这有效,但我发现整个解决方案非常脆弱。它对来自presentRequestsDialogModallyWithSession的响应很敏感,根本不会改变。一个更好的解决方案可能是放弃Objective-C类并通过HTTP请求进行图形调用,这有望像Javascript中那样返回JSON - 更加强大。