2011-01-31 8 views
2

私はFacebook Javascript SDKを設定して、ユーザーがFacebook経由でサイトにログインできるようにしています。言うまでもありませんが、私はFacebookのドキュメントで混乱しています。私の最初の質問は、ユーザーがFacebookにログインして自分のFacebook IDを決定し、そこから自分のサイトにログオンしたとき(ユーザーとのやりとりなし)にユーザーを検出できるかどうかです。この部分を除いてすべてがうまくいっているようです。ユーザーがFacebookのログインボタンをクリックすると、すべて正常に動作し、getLoginStatus()が正しく実行されます。しかし、初期ページのロード時にgetLoginStatus()はコールバック関数を呼び出さないようです。 Facebookにログインしている場合はFacebookの "登録"ボタンでなければならないという印象を受けました。私は以下のいくつかのコードを含んでいます。もし誰かが私にこれに関する指導を与えることができれば、私はそれを高く評価します。私は自分のアプリケーションIDとサイト名を削除し、それらを「ダミー」テキストに置き換えたことに注意してください。Facebookのjavascript sdk getLoginStatus()の問題

<!-- Load Facebook javascript SDK (This should be the first item after the opening body tag) --> 
<div id="fb-root"></div> 
<script> 
     window.fbAsyncInit = function() { 
     FB.init({appId: myAppId, status: true, cookie: true, 
       xfbml: true}); 

     FB.getLoginStatus(function(response) { 
      if (response.session) { 
      // logged in and connected user, someone you know 
        alert('I know you'); 
      } else { 
      // no user session available, someone you dont know 
       alert('Who are you?'); 
      } 
      alert(response.session.uid); 

     }); 
     }; 

     (function() { 
     var e = document.createElement('script'); e.async = true; 
     e.src = document.location.protocol + 
      '//connect.facebook.net/en_US/all.js'; 

     document.getElementById('fb-root').appendChild(e); 
     }()); 
</script> 
<fb:login-button show-faces="false" width="70" max-rows="1" registration-url="myRegistrationUrl" style="margin: 0; padding: 0;"></fb:login-button> 

答えて

0

こんにちは、あなたのfacebookアカウントに基づいてあなたのサイトにログインしたいと思っています。私は同じことをした。まず、ユーザーがFacebookにログインしてから、そのユーザーIDをユーザーテーブルに送信し、ユーザーのユーザーのIDをサイトにログインさせます。コードの下で私のために働く。

 
<div id="fb-root"> 
<script> 
    window.fbAsyncInit = function() { 
    FB.init({appId: "XXXXXX", 
      status: true, 
      cookie: true, 
      xfbml: true}); 

    FB.getLoginStatus(function(response) { 
     if (response.session) { 
     //here send the parameters to your system that logins into your system 
     self.location.href="http://www.yoursite.com/login.php"; 
     } else { 

     } 
    }); 
    FB.Event.subscribe("auth.login", function(response) { 
    window.location.reload(); 
     }); 
FB.Event.subscribe("auth.logout", function(response) { 
    // to logout 

    self.location.href="http://www.yoursite.com/logout.php"; 
     }); 
    }; 
    (function() { 
    var e = document.createElement("script"); 
    e.type = "text/javascript"; 
    e.src = document.location.protocol + 
    "//connect.facebook.net/en_US/all.js"; 
    e.async = true; 
    document.getElementById("fb-root").appendChild(e); 
    }()); 
    </script> 

login.phpで、ユーザー名を確認できます。あなたのサイトにログインしてください。私がやったことは、ユーザー名としてjason経由で私に返されたユーザーIDを送信し、ユーザーテーブルのパスワードとしてmd5の後に送信します。私は単純にlogin.phpの私のuserテーブルのuseridを比較し、ユーザを自分のサイトにログインさせます。私はそれがあなたのためにまた働くことを願っています

+0

あなたはそれが(すなわち、それはデータを偽装されていない) –

+0

@Robertコネティカットを有効かつ安全であることを確認するのFacebookからのデータの署名をチェックします。私はあなたのポイントを愛する理解していませんでし。アクセストークンを介してデータを取得している場合、どのようになりすましデータを取得できますか? –