我想为那些不喜欢该页面的人显示一个类似Facebook的按钮。因此,当用户已经是页面的粉丝时,不会显示类似按钮。
我做了很多研究,发现我需要实现Facebook连接,并获取user_likes
权限并检查连接的用户是否在其列表中有该页面。这是一个工作示例http://www.fbrell.com/fb.api/does-like
基本上,我需要能够执行此操作的代码:
当用户点击连接时,如果连接的用户过去不喜欢,则会更改内容并显示Facebook like按钮。
答案 0 :(得分:5)
在初始化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
只需搜索“粉丝门”和“签名请求”。