2012-08-17 153 views
2

我們有一個Facebook網站應用程序用作公共事件亭。許多人將通過我們的網站在同一臺設備上登錄Facebook(在一個展位設置,如iPad或類似設備)。Facebook Kiosk註銷

我們需要在完成後將人員從Facebook本身中註銷;不要簡單地銷燬我們網站的圖表API會話。

這裏的問題是:

  1. 用戶走向我們的iPad,其加載到我們的網站瀏覽器。他或她點擊「facbook登錄」,並重定向到Facebook登錄。
  2. 他們登錄,授予我們的應用程序許可,並將其重定向到我們的網站。
  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> 
+0

我有類似的問題,並做了類似的事情。但我只需要用戶登錄,接受應用程序權限對話框和發佈/共享應用程序圖像。但是有一個小缺陷 - 如果用戶登錄並拒絕應用程序權限對話框,則用戶已登錄,但未連接(應用程序),因此沒有訪問令牌,因此我們無法註銷用戶。 所以最好的方法可能是通過殺死會話通過PHP SDK來維護這個過程。 p.s.如果我是正確的,那麼在較早的日子裏可以強制註銷,但是現在(FB策略),如果你沒有被授權應用,它就不可能了。 – 2017-06-19 15:08:46

回答

2

如果你使用Facebook的Javascript SDK,您可以撥打FB.logout當他們點擊你的註銷鏈接的文檔指出:

FB.logout將註銷用戶您的網站和Facebook這兩個。