【问题标题】:Facebook Kiosk LogoutFacebook 自助服务终端注销
【发布时间】:2012-08-13 11:26:06
【问题描述】:

我们有一个 facebook 网站应用程序用作公共活动信息亭。许多人将通过我们的网站在同一设备上登录 facebook(设置在展位上,如 ipad 或类似设备)。

我们需要在完成后将该人从 facebook 中注销;不仅仅是破坏我们网站的图形 API 会话。

问题来了:

  1. 用户走到我们的 ipad 前,它的浏览器已加载到我们的网站。他或她点击“facebook登录”,并被重定向到facebook登录。
  2. 他们登录并授予我们的应用权限,然后 facebook 将他们重定向回我们的网站。
  3. 在他们使用我们的网站(发表评论等)后,他们会在我们的网站上点击退出。
  4. 下一个用户坐下,点击“facebook 登录”,然后被重定向到 facebook。到达 facebook.com 后,浏览器仍为前一个用户登录,授予此用户访问第一个用户的 facebook 的权限(只是一个小问题 =)

我希望我可以将用户发送到 facebook,到一个只有注销按钮的页面,并让 facebook 将浏览器重定向回我的网站,为下一个用户做好准备。这就是登录的工作方式,我需要一个等效的注销。

编辑:

非常感谢您的回答。我们花了大约 3 天的时间来解决这个问题;如果我们发布任何人都可以插入的通用代码,我希望您能原谅我们。将其放在 HTML 页面上,然后访问该页面,将用户从 Facebook 您的网站注销。

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : 'your APP ID', // App ID
      channelUrl : '//WWW.YOURSITE.COM/channel.php or channel.html or whatever yours is', // Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });
    // Additional initialization code here
    FB.getLoginStatus(function(response) {
    if (response.status === 'connected') {
      var uid = response.authResponse.userID;
      var accessToken = response.authResponse.accessToken;
      FB.logout();
      alert('Thanks!  You have been logged out of facebook.');
    }
   });            
  };
  (function(d){
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/en_US/all.js";
     ref.parentNode.insertBefore(js, ref);
   }(document));
</script>

【问题讨论】:

  • 我遇到了类似的问题并做了类似的事情。但我只需要用户登录、接受应用程序权限对话框和发布/共享应用程序图像。但是有一个小缺陷 - 如果用户登录并拒绝应用程序权限对话框,则用户已登录,但未连接(到应用程序),因此没有访问令牌,因此我们无法注销用户。所以最好的方法可能是通过 PHP SDK 通过终止会话来维护这个过程。 p.s.如果我是正确的,过去可以强制注销,但现在(根据 FB 政策)如果您无权应用,则不再可能。

标签: facebook facebook-graph-api logout kiosk


【解决方案1】:

如果您使用 Facebook Javascript SDK,您可以在他们单击您的注销链接时致电 FB.logout,如文档所述:

FB.logout 会将用户从您的网站和 Facebook 中注销。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    • 2013-04-16
    • 2019-05-09
    • 1970-01-01
    • 2020-06-04
    • 2017-12-09
    • 2020-12-29
    相关资源
    最近更新 更多