【发布时间】:2012-11-20 03:23:30
【问题描述】:
在我的网站上,我希望访问者只有在他们通过按赞按钮在 facebook 上分享我的网站后才能访问某些内容。我想知道如何让内容只对按下了“赞”按钮的用户可见。
【问题讨论】:
标签: facebook facebook-like facebook-social-plugins
在我的网站上,我希望访问者只有在他们通过按赞按钮在 facebook 上分享我的网站后才能访问某些内容。我想知道如何让内容只对按下了“赞”按钮的用户可见。
【问题讨论】:
标签: facebook facebook-like facebook-social-plugins
有几种方法可以实现这种方法,但都不会 100% 满足您的需求。
您可以通过FB.Event.subscribe 监听edge.create 事件。触发后,您可以从 div 或类似元素中删除 display:none 属性。这样做的缺点是,任何查看源代码的人仍然可以看到您隐藏的内容。
edge.create 事件的另一个选项是您可以通过 AJAX 拉入内容,这将在触发事件之前将其保留在您的源之外。
整个edge.create 事件的问题在于,一旦有人重新访问您的页面,edge.create 事件不会检测到此人已经喜欢您的网站,因此隐藏的内容不会显示。
解决方法是请求user_likes 权限。完成后,您可以使用 JS-SDK 调用 /me/likes/<your_page_id>。如果我们返回一个空数组,他们不喜欢该页面并且您不会加载内容。如果他们这样做,我们将在页面上返回数据,以便您显示它。
这种方法的问题是您需要使用 Facebook 登录。一般来说,这没有什么问题,但代价是转化率下降,仅仅隐藏一些内容可能不值得,但这取决于你。
【讨论】: