如何注销用户后,他们喜欢上一个页面的Facebook类插件



我正在构建一个非常小的网页,用于售货亭。目标是让人们在有触摸屏的地方"点赞"facebook页面。

用户必须先登录才能喜欢一个页面,所以Facebook会弹出他们的常规登录弹出窗口,这很有魅力。当用户登录时,页面会被点赞(因为他们单击了"点赞"按钮),用户应该再次注销(因为没有人想在公共计算机上登录)。之后应该重新加载页面。

现在,这可以通过Facebook的Javascript API实现。它们有一个事件监听器,当用户喜欢某个页面时,它会调用一个函数。当该事件触发时,我只需要调用FB.logout():)。

不幸的是,它对我不起作用。我可能很笨,或者Facebook API被窃听了。

我的代码:

window.fbAsyncInit = function() {
FB.Event.subscribe('edge.create', function(response) {
FB.logout(function(response) {
window.location.reload();
});
});
}

但这不起作用,我认为问题出在Facebook的登录部分。

有人有这方面的经验吗?它应该很简单,但我无法让它发挥作用。。。

我尝试过的一些东西:

  • 提示正常登录-可能,但它说我的应用程序需要访问一些信息。实际上,我唯一想做的就是让用户喜欢一个页面。

  • setTimeout循环-尝试过这个,但Facebook登录似乎在我的页面上停止了整个Javascript?

EDIT:我知道人们将凭据插入公共计算机是个坏主意,但客户希望这样做。还有一个二维码可以链接到Facebook页面,但这并不能解决我的问题:)。

TL;DR:当用户登录时,"点赞"按钮的Facebook Javascript回调有效,但当用户必须通过Facebook弹出窗口登录时,回调失败

不幸的是,它对我不起作用。我可能很笨,或者Facebook API被窃听了。

没有。问题在于你的方法。概念。

FB.logout使用活动访问令牌(否则,我在网上访问的任何网站都可能使我退出Facebook,这将非常令人讨厌)。

但由于用户没有连接到您的应用程序,因此您没有访问令牌。

提示正常登录-可能,但它说我的应用程序需要访问一些信息。

这是您获得访问令牌的唯一方式,因为这是您可以使用FB.logout.的唯一方式

(如果用户登录到Facebook,但拒绝连接到你的应用程序,那么你也不会有访问令牌,所以在这种情况下你也不能将他们注销。)

最新更新