不要为那些已经喜欢它的人显示Facebook喜欢按钮



我想为一个页面显示一个Facebook喜欢按钮,只为那些不喜欢该页面的人显示。因此,当用户已经是该页面的粉丝时,将不显示"喜欢"按钮。

做了很多研究,我发现我需要实现Facebook连接,并获取user_likes权限并检查连接的用户是否在他的列表中有该页面。这是一个工作示例 http://www.fbrell.com/fb.api/does-like

基本上,我需要执行此操作的代码:

当用户单击连接时,内容将被更改,如果连接的用户过去不喜欢它,将显示Facebook喜欢按钮。

实现 JavaScript SDK

在初始化 JS SDK 的过程中,请务必将xfbml设置为 false,这样插件就不会自动渲染。 您必须请求user_likes权限,这意味着您必须将您的网站与Facebook应用程序相关联。 这样Facebook就可以跟踪谁在请求什么数据。您可以使用 Fb.login() 方法来请求权限并对用户进行身份验证。

一旦你有了JavaSctipt SDK,你可以简单地调用API。


  • FB.api('me/likes/PAGE_ID')

  • FQL
    FB.api("fql?q='SELECT+uid+FROM+page_fan+WHERE+uid=me()+AND+page_id=PAGE_ID")

如果那些返回数据,你知道不显示类似的插件。 但是,如果用户还不喜欢该页面,这些调用将返回空结果,然后您可以调用 FB.XFBML.parse() 方法来呈现类似的插件。

你需要对图形 API 进行一些调用,
获取包含FB.api('http://your-url.com');
的页面 ID 后您可以使用 FQL 查询检查当前用户是否喜欢您的页面:

'SELECT uid FROM page_fan WHERE uid=me() AND page_id=YOUR-PAGE-ID'

如果您的"喜欢"按钮位于画布页面或页面选项卡上,则可以通过读取signed_request来实现扇门。关于如何做到这一点,这里也有大量关于如何做到这一点的教程和提示,适用于不同的服务器端语言。例如这里的这个答案:https://stackoverflow.com/a/7671496/601466
只需搜索"风扇门"和"签名请求"。

最新更新