Facebook SDK iOS邀请用户没有FBWebDialogs

我想从我的应用程序的用户不是我的Facebook的朋友列表,并能够邀请他们。

使用FBWebDialogs我可以挑选用户,但是我想知道foursquare是如何做到的? 截图:

有无frictionless requests选项。
在Facebook开发者网站上,他们在Invites and Requests部分提到

我们谈到了用户来回交换请求的场景。 如果这种情况在你的游戏中是典型的,那么每次他们想发送一个请求的时候强制他们通过请求对话就可能是一个不好的用户体验。 解决scheme是无摩擦的要求。

无需摩擦的请求让用户无需点击popup式确认对话框即可向应用程序的朋友发送请求。 向朋友发送请求时,用户可以授权应用程序将后续请求发送给同一个朋友,而无需另一个对话。 这简化了与朋友分享的过程。

欲了解更多信息,请参阅Facebook的邀请和请求

你在这里问两个问题:

如何邀请Facebook的朋友没有网页对话框?

不幸的是,您所指的网页对话框是向朋友发送邀请的最佳方式。 有一段时间,我们不得不求助于丑陋的黑客来获得应用程序的这个function。 Facebook在开发人员创build错误报告之后,将这一function添加到iOS SDK中,并在字面上隐藏了它们。

获取不使用该应用的朋友列表并邀请他们

Foursquare IMO不使用请求API。 他们所做的是,只要有人将他们的Facebook帐户链接到他们的Foursquare帐户,他们记下正在使用/不使用该应用程序的用户朋友。 这是可能的,如果用户授予应用程序的权限。

然后在邀请屏幕上,他们只需构build一个UITableView,列出他们认为不在使用该应用程序的朋友列表。 当您点击邀请时,他们只会发送电子邮件邀请,而不是您所指的Facebook请求。

我认为FourSquare将用户的好友列表(好友ids)同步到它自己的服务器上。然后在他们检查它以创build像你共享的屏幕截图一样的自定义界面。

也许我没有得到正确的问题,但是从我知道的点击Foursquare上的邀请button后,Facebook邀请对话框(apprequest)就会popup。

一般来说,如果您在展示之前没有指定任何朋友ID,或者在Foursquare示例中显示所选朋友,则此对话框将允许您select朋友。 有一个API来让你的FB朋友,所以你的服务器可能检查巫婆,然后已经有了应用程序…

Rahul Patel指出,我一直在研究这个问题,而我发现的主要解决scheme是无摩擦的要求。 您可以直接向graphicsAPI请求,并查看谁安装了您的应用程序 。

从那里你可以很容易地实现任何forms的过滤。 例如,使用Friend Picker UI控件并实现方法friendPickerViewController:shouldIncludeUser:并检查不在应用程序中的Facebook标识列表,然后在应用程序中的其他位置caching,并主动更新它(例如,在一个简单的核心当appDidFinishLaunching时更新的数据模型),如果用户不显示则返回no。 这将只允许用户select不在应用程序上的个人,然后您可以通过无懈可击的请求向他们发送请求。

我认为,垃圾邮件并不是一个好主意,但是,至less不允许他们检查朋友的姓名,或者看看他们是谁。