我只想为不喜欢该页面的人显示一个页面的 Facebook 喜欢按钮。因此,当用户已经是该页面的粉丝时,不会显示“赞”按钮。
我做了很多研究,我发现我需要实现 Facebook 连接,并获取user_likes
权限并检查连接的用户是否在他的列表中有页面。这是一个工作示例http://www.fbrell.com/fb.api/does-like
基本上,我需要执行此操作的代码:
当用户点击连接时,内容将被更改,如果连接的用户过去不喜欢它,则会显示 Facebook 喜欢按钮。
我只想为不喜欢该页面的人显示一个页面的 Facebook 喜欢按钮。因此,当用户已经是该页面的粉丝时,不会显示“赞”按钮。
我做了很多研究,我发现我需要实现 Facebook 连接,并获取user_likes
权限并检查连接的用户是否在他的列表中有页面。这是一个工作示例http://www.fbrell.com/fb.api/does-like
基本上,我需要执行此操作的代码:
当用户点击连接时,内容将被更改,如果连接的用户过去不喜欢它,则会显示 Facebook 喜欢按钮。
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()
方法来呈现类似的插件。
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'
如果您的喜欢按钮位于画布页面或页面选项卡上,您可以通过阅读signed_request来实现扇门。对于不同的服务器端语言,stackoverflow 上也有大量的教程和提示。例如这里的答案:https
://stackoverflow.com/a/7671496/601466
只需搜索“fan gate”和“signed request”。