21

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

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

4

5 回答 5

14

有选项frictionless requests
在 Facebook 开发者网站上,他们在Invites and Requests

我们谈到了用户来回交换请求的场景。如果这种情况在您的游戏中很常见,那么每次他们想要发送请求时都强制他们通过请求对话框可能会带来不好的用户体验。解决方案是无摩擦请求。

无摩擦请求允许用户从应用程序向朋友发送请求,而无需单击弹出确认对话框。向朋友发送请求时,用户可以授权应用程序向同一朋友发送后续请求,而无需其他对话。这简化了与朋友分享的过程。

如需更多参考,请参阅Facebook 邀请和请求

于 2013-08-30T11:49:37.473 回答
5

你在这里问两个问题:

如何在没有网络对话的情况下邀请 Facebook 朋友?

不幸的是,您所指的网络对话是向朋友发送邀请的最佳方式。曾经有一段时间,我们不得不求助于丑陋的 hack,只是为了在应用程序中获得这个功能。Facebook 在开发人员创建错误报告并支持他们之后,将此功能添加到 iOS SDK。

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

Foursquare IMO 没有使用请求 API。他们所做的是,每当有人将他们的 Facebook 帐户链接到他们的 Foursquare 帐户时,他们都会记录正在使用/未使用该应用程序的用户朋友。如果用户授予应用程序权限,这是可能的。

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

于 2013-09-05T07:02:20.613 回答
4

我认为 FourSquare 将用户的朋友列表(朋友 ID)同步到自己的服务器。然后他们检查它以创建自定义界面,如您共享的屏幕截图。

于 2013-09-02T09:27:55.243 回答
3

也许我没有得到正确的问题,但据我所知,在您点击 Foursquare 上的邀请按钮后,Facebook 邀请对话框(apprequest)将弹出。

一般来说,如果您在展示之前没有指定任何朋友 ID,则此对话框将允许您选择朋友,或者像 Foursquare 示例中那样向您显示选择的朋友。有一个 API 可以获取您的 FB 好友,因此您的服务器可以检查女巫是否已经拥有该应用程序...

于 2013-08-31T22:37:00.610 回答
3

正如 Rahul Patel 所指出的,我已经对此进行了一段时间的研究,我发现的主要解决方案是无摩擦请求。您可以直接请求图形 API 并查看谁安装了您的应用程序

从那里你可以很容易地实现任何类型的过滤。例如,使用Friend Picker UI 控件并实现该方法friendPickerViewController:shouldIncludeUser:并检查不在应用程序上的 facebook id 列表,这些 id 不在您缓存在应用程序中的其他位置并主动更新它(例如,在一个简单的核心数据模型中,即在 appDidFinishLaunching 时更新),如果没有显示用户,则返回 no。这将只允许用户选择不在应用程序上的个人,然后您可以在后台向他们发送请求,并使用无摩擦的请求。

但是,我确实认为向人们发送垃圾邮件并不是一个好主意,但至少不允许他们查看朋友的姓名或查看他们的身份。

于 2013-09-03T03:30:26.717 回答