2

公開イベントキオスクとして使用するFacebookWebサイトアプリがあります。多くの人が同じデバイス(iPadなどのブースに設置)で私たちのサイトからFacebookにログインします。

完了したら、Facebook自体からその人をログアウトする必要があります。私たちのサイトのグラフAPIセッションを単に破壊するだけではありません。

ここに問題があります:

  1. ユーザーは、ブラウザがWebサイトにロードされているiPadに近づきます。「facbooklogin」をクリックすると、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>
4

1 に答える 1

2

Facebook Javascript SDK を使用している場合は、ドキュメントに記載されているように、ログアウト リンクをクリックしたときにFB.logoutを呼び出すことができます。

FB.logout は、サイトと Facebook の両方からユーザーをログアウトさせます。

于 2012-08-17T01:48:35.587 に答える