我想从Facebook获取不是我的应用用户的朋友列表,并且可以邀请他们。
使用FBWebDialogs
我可以选择用户,但我想知道foursquare是如何做到的?
截图:
答案 0 :(得分:14)
有frictionless requests
选项
在Facebook开发者网站上,他们在Invites and Requests
我们谈到了用户来回交换请求的场景。如果这种情况在您的游戏中很常见,那么每次他们想要发送请求时强制他们通过请求对话框都会是一种糟糕的用户体验。对此的解决方案是无摩擦的要求。
无摩擦请求允许用户从应用程序向朋友发送请求,而无需单击弹出确认对话框。当向朋友发送请求时,用户可以授权应用程序在没有其他对话的情况下将后续请求发送给同一朋友。这简化了与朋友分享的过程。
有关详情,请参阅Facebook Invites and Requests
答案 1 :(得分:5)
你在这里问两个问题:
如何在没有网络对话的情况下邀请Facebook好友?
不幸的是,您所指的网络对话框是向朋友发送邀请的最佳方式。有一段时间我们不得不诉诸丑陋的黑客只是为了在应用程序中获得此功能。 Facebook在开发人员创建错误报告之后将此功能添加到iOS SDK中。
获取未使用该应用并邀请他们的朋友列表
Foursquare IMO未使用请求API。他们所做的是,只要有人将他们的Facebook帐户链接到他们的Foursquare帐户,他们就会记录使用/不使用该应用程序的用户朋友。如果用户授予应用程序权限,则可以执行此操作。
然后在邀请屏幕中,他们只是构建一个UITableView,其中包含他们认为未使用该应用的朋友列表。当您点按“邀请”时,他们只会发送电子邮件邀请,而不是您要提及的Facebook请求。
答案 2 :(得分:4)
我认为FourSquare将用户的朋友列表(朋友ID)同步到自己的服务器..然后他们检查后创建自定义界面,就像您共享的屏幕截图一样。
答案 3 :(得分:3)
也许我没有得到正确的问题,但是在我点击Foursquare上的邀请按钮后,我会知道Facebook邀请对话框(apprequest)会弹出。
一般情况下,如果您在呈现之前未指定任何朋友ID,则此对话框将允许您选择朋友,或者在Foursquare示例中向您显示所选朋友。 有一个API可以让你的FB朋友,所以你的服务器可以检查当时已经有应用程序的女巫......
答案 4 :(得分:3)
我已经研究了一段时间,而我发现的主要解决方案是无摩擦请求,正如Rahul Patel所说。您可以直接请求图API和see who has your app installed。
从那里你可以很容易地实现任何类型的过滤。例如,使用Friend Picker UI Control并实现方法friendPickerViewController:shouldIncludeUser:
并检查不在应用程序上的facebook ID列表,这些应用程序将缓存在应用程序中的其他位置并主动更新它(例如,在在appDidFinishLaunching时更新的简单核心数据模型,如果未显示用户则返回no。这只会允许用户选择不在应用程序上的个人,然后您可以通过无懈可击的请求向他们发送请求。
我确实认为垃圾邮件不是一个好主意,但至少不允许他们检查朋友的名字,或者看看他们是谁。