检测Facebook用户是否喜欢未经应用程序授权的页面

检测Facebook用户是否喜欢未经应用程序授权的页面,facebook,facebook-graph-api,facebook-fql,Facebook,Facebook Graph Api,Facebook Fql,我正在构建一个iframe Facebook应用程序,我想设置一个“喜欢门”,用户必须喜欢我的页面才能在应用程序打开后继续。(在他们像我一样单击之后,我允许他们使用JavaScript单击“继续”按钮) 有没有办法检测访问Facebook的用户是否喜欢某个页面,而不首先强制他们授权我的应用程序?我知道我可以使用graph api或fql查询他们的喜好,但我希望避免强迫他们通过应用程序这一部分的auth对话框。我问这个问题的原因是,我在Facebook上看到一些应用程序似乎允许这个功能 例如,此页

我正在构建一个iframe Facebook应用程序,我想设置一个“喜欢门”,用户必须喜欢我的页面才能在应用程序打开后继续。(在他们像我一样单击之后,我允许他们使用JavaScript单击“继续”按钮)

有没有办法检测访问Facebook的用户是否喜欢某个页面,而不首先强制他们授权我的应用程序?我知道我可以使用graph api或fql查询他们的喜好,但我希望避免强迫他们通过应用程序这一部分的auth对话框。我问这个问题的原因是,我在Facebook上看到一些应用程序似乎允许这个功能

例如,此页面:


我不必授权facebook应用程序,但页面知道我是否喜欢它。

我在解决这个问题上取得了一些进展

上述链接中描述的方法仅在页面加载到应用程序风扇页面的选项卡内而不是应用程序主iframe页面内时有效

此处存在“pages”对象

此处:“页面”对象不存在


我不知道为什么会这样,但我认为我有足够的能力向前发展,创建我的粉丝/喜欢的门。

在用户可以使用之前强迫他们喜欢某个东西似乎很愚蠢。他们怎么知道呢?pages对象与tab页面一起出现,因为它是一个托管在Fan页面上的带选项卡的iFrame,并且该数据对于定制非常有用。canvas页面上缺少page对象,因为canvas页面是与选项卡完全分离的实体,而您的应用程序只有一个画布,但可以在不同的风扇页面上安装多个选项卡。如您所知,您可以很容易地从传递到选项卡iFrame的签名请求中确定用户是否喜欢某个页面。但是,如果您想知道用户是否喜欢画布中的页面,则需要授权用户。如果您想在canvas应用程序中找到关于某个用户的任何信息,那么该用户必须经过授权——这是没有办法的。所以,如果你想找到用户是否喜欢你的页面,你必须:授权用户,用户FQL确定用户是否喜欢你的页面,然后做出相应的响应(即重定向到粉丝页面或允许访问应用程序)。