4

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

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

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

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

4

3 回答 3

5

实现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()方法来呈现类似的插件。

于 2012-07-01T22:26:32.017 回答
1

You need to make some calls to the Graph API,
After you get the Page ID with FB.api('http://your-url.com');
you can check if current user like's your page with an FQL query:

'SELECT uid FROM page_fan WHERE uid=me() AND page_id=YOUR-PAGE-ID'
于 2012-07-01T21:08:02.520 回答
0

如果您的喜欢按钮位于画布页面或页面选项卡上,您可以通过阅读signed_request来实现扇门。对于不同的服务器端语言,stackoverflow 上也有大量的教程和提示。例如这里的答案:https
://stackoverflow.com/a/7671496/601466 只需搜索“fan gate”和“signed request”。

于 2012-07-01T21:59:13.310 回答