2011-07-05 98 views
0

我目前正在从事一个需要像网页一样的粉丝的项目,才能在网站上看到多个内容。检查登录用户是否喜欢使用JS的Facebook API上的页面?

该网页不是Facebook上的应用程序,它在Facebook之外。我们不会使用PHP或后端代码,我们只会使用FrontEnd

我已完成用户登录检查以检查用户是否已登录。

我现在坚持检查用户是否是我们页面的粉丝。我尝试使用功能page.IsFan,但不知何故它需要有一个UID。

由于相同的原因,FQL方法不可行。

另一个问题是我们页面的appID。我尝试谷歌如何获得页面的appID,但搜索与无用的内容混合在一起。

是否有无论如何获取UID或检查用户是否喜欢我们的页面没有UID?

非常感谢您

+0

您是否需要在每次加载页面时获取该信息,或者只是捕获“like”事件,因为它发生? – Niklas

+0

该页面只加载一次,因此我不需要担心但有一段时间有返回用户,所以我需要检查用户是否已经喜欢网页或不知何故... – DucDigital

回答

0

你将不得不使用后端代码从你的Facebook的iFrame风扇页面,因为您必须检查在HTTP POST请求中发送给您的页面的signed_request变量,因为此变量将无法通过JavaScript获得,并且订阅到javascript中的edge.create将无法工作,因为页面没有满当用户点击类似按钮时刷新,并且该事件不会触发。

如果您强制用户使用您的应用程序进行身份验证(如果您检查了signed_request变量,则不需要考虑),可以使用FQL查询或图形API请求,而不是指定其用户标识,只需使用“我”即可。例如:select field from table where uid = me()

0

除非你提供你将无法知道用户之前是否喜欢该页面的UID。但是,您可以使用FB.Event.subscribe找出当用户不喜欢的项目,通过订阅edge.create事件:

FB.Event.subscribe('edge.create', function(response) { 
    alert("liked the item"); 
}); 

例如:http://jsfiddle.net/niklasvh/rmrE4/

+0

有无论如何获得UID? – DucDigital

+0

@DucDigital如果他们已经登录,那么是的。在这种情况下,您可以使用'getLoginStatus'获得UID:htt p://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/ – Niklas

+0

我在脚本中使用了这个函数,但大多数他们没有response.session对象。当我做一个控制台登录响应。它给了我一个NotConnected(那些登录但没有连接到你的应用程序的人)。这是一个粉丝专页,那我怎么才能得到关于这方面的信息呢?如何才能授权从粉丝页面获取用户? – DucDigital

相关问题