公開イベントキオスクとして使用するFacebookWebサイトアプリがあります。多くの人が同じデバイス(iPadなどのブースに設置)で私たちのサイトからFacebookにログインします。
完了したら、Facebook自体からその人をログアウトする必要があります。私たちのサイトのグラフAPIセッションを単に破壊するだけではありません。
ここに問題があります:
- ユーザーは、ブラウザがWebサイトにロードされているiPadに近づきます。「facbooklogin」をクリックすると、Facebookにリダイレクトされてログインします。
- 彼らはログインし、私たちのアプリに許可を与え、Facebookは彼らを私たちのサイトにリダイレクトします。
- 彼らが私たちのサイトを使用した後(コメントを投稿するなど...)、彼らは私たちのサイトでログアウトをクリックします。
- 次のユーザーが座って「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>