Facebook图表 - 可以检查用户是否是没有user_groups的组成员?

时间:2015-03-31 20:51:33

标签: facebook facebook-graph-api

我是Wordpress / Facebook插件的作者,多年来,该网站通过根据用户是否是Facebook上的私人群组成员允许/拒绝登录,让网站能够创建WP社区。突然 - 以典型的Facebook时尚 - 他们打破了它,现在声明:

  

user_groups权限仅适用于允许用户访问的应用   在Facebook尚不可用的平台上使用Facebook。如果   你在Android和iOS上构建应用程序,例如,你不会   批准了这个许可。网络,桌面和电视应用也不会   获得此许可。

参考:https://developers.facebook.com/docs/facebook-login/permissions/v2.3

以前,我通过/ group-id / members端点确定用户是否是组的成员,并在组的成员列表中查找当前用户。这需要现在不可能的user_groups权限,因此无法工作。 / user / groups端点也需要user_groups,并且也不会工作。我发现了使用FQL(facebook graph api check if user is a member of a group using PHP)的另一种方式的引用,据说它并不需要user_groups,但它们也杀死了FQL。

因此,虽然我非常确定我知道答案,但我只是想伸出手,看看是否有任何可能的解决方法可以帮助我避免杀死这个极受欢迎的功能:其他一些方法根据组的成员资格允许/禁止用户。只是寻找一些开箱即用的想法 - 或者考虑群组功能完全丢失并永远消失是安全的吗?

感谢您提出的任何想法......

3 个答案:

答案 0 :(得分:4)

我遇到了同样的问题,我得出了你可以想象的结论:除非你拥有user_group权限,否则没有直接的方法可以确定用户是否是某个组的成员。

目前,我发现的唯一解决方法是将用户的ID存储在数据库中,并附带一个变量,告诉我他是否是我的团队成员;我“手动”更新此变量,定期将我的组的成员列表与用户数据库进行比较。

请记住,如果您是某个组的管理员,则无需任何权限即可获取其成员列表(这是我使用的代码:$members = $facebook->api('/'.$userGroupId.'/members','GET');)。

获得此列表后,您可以使用它来更新用户数据库的布尔变量“is_member”。

肯定不是最优雅的解决方案,但据我所知,没有那么多替代方案......

无论如何,你也可以按照这个问题的选定答案中解释的方法:Facebook login for group members

答案 1 :(得分:0)

基本上与我使用的答案相同:使用Graphic API将组成员下载到您的数据库,然后从那里查询它。 我是一个由600多名成员组成的小组的管理员,我们不会匆忙增加新成员,因此很容易将新的成员添加到其中。 它的工作原理,但如上所述,这是一个粗糙的方法,它是一个耻辱FB使这非常困难。

答案 2 :(得分:0)

作为一个封闭的Facebook群组和相关网站的管理员,我遇到了同样的问题。 我找到一个简单的方法来解决只允许FB组成员登录网站的成员部分而不是理想的解决方案的问题,就是将所有FB成员ID(没有名称,只是ID)下载到站点数据库中,它可以然后在点击“登录Facebook”按钮后查询。如果未找到匹配项,则无法登录。简单! 我有一个由600多名成员组成的FB小组。手动输入任何新成员的ID。正如我所说,不是理想的解决方案,但确实有效。

相关问题