对于那些已经喜欢它的人,不要显示类似于facebook的按钮

时间:2012-07-01 20:52:51

标签: facebook facebook-graph-api facebook-like

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

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

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

当用户点击连接时,如果连接的用户过去不喜欢,则会更改内容并显示Facebook like按钮。

3 个答案:

答案 0 :(得分:5)

实施JavaScript SDK

在初始化JS SDK期间,请确保将xfbml设置为false,以便不会自动呈现插件。您必须request the user_likes permission这意味着您必须将您的网站与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()方法来呈现类似的插件。

答案 1 :(得分:1)

您需要调用Graph API,
获得带有FB.api('http://your-url.com');的网页ID后 您可以使用FQL查询检查当前用户是否喜欢您的页面:

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

答案 2 :(得分:0)

如果您的“喜欢”按钮位于画布页面或页面选项卡上,则可以通过阅读signed_request来实现扇形门。 关于如何在不同服务器端语言的stackoverflow上进行操作,有大量的教程和提示。例如,这里的答案是:https://stackoverflow.com/a/7671496/601466
只需搜索“粉丝门”和“签名请求”。