Facebook Kiosk退出

时间:2012-08-17 01:13:45

标签: facebook facebook-graph-api logout kiosk

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

我们需要在完成后将这个人从Facebook本身登录出来;不是简单地破坏我们网站的图形api会话。

问题在于:

  1. 用户走到我们的ipad,它的浏览器加载到我们的网站。他或她点击“facbook登录”,并被重定向到Facebook登录。
  2. 他们登录,授予我们的应用程序权限,并将Facebook重定向回我们的网站。
  3. 在他们使用我们的网站(发表评论等)后,他们点击我们网站上的注销。
  4. 下一位用户坐下,点击“facebook登录”,然后重定向到Facebook。到达facebook.com后,浏览器仍然为前一个用户登录,授予此用户访问第一个用户的Facebook(只是一个小问题=)
  5. 我的希望是我可以将用户发送到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>
    

1 个答案:

答案 0 :(得分:2)

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

  

FB.logout会将用户从您的网站和Facebook中记录下来。