2012-05-10 19 views
0

を受け入れた後、私はすでに私たちのFacebookアプリは、私が使用するつもりだった当初は、許可されている自分のサイトにユーザーを自動的にログインしようとしている:自動ログインFacebookのユーザー権限

var cb = function(response) { 
    if (response.status === 'connected') { 
     FB.api('/me', function(response) { 
     $.post(url, { 'op':'facebook','name':response['name'],'id':response['id'],'email':response['email']}, 
      function(data) { 
       parent.location.reload(); 

      }); 
     }); 
    } else { 
     alert('You are not logged in'); 
    } 
    }; 
    FB.login(cb, { scope: 'publish_actions,publish_stream,read_stream,email' }); 

それはFacebookを利用して開くことを利用しますが多くのポップアップブロッカーやブラウザでブロックされ、このように自動的に行われ、私たちのアプリを許可していないユーザーにも表示されます。

は、私はそれがdescretely行われるが、私はどのようにわからないしたい:誰もが素晴らしいことだJavaScriptを使用して、それらをログに記録する方法私を見ることができればS

:)

答えて

1

を促しますログインは、要素をクリックするような、ユーザーが生成したイベントから離しておく必要があります。ほとんどのブラウザでは、ユーザがアクションを要求したという確信が十分でない限り、新しいウィンドウを自動的に開く試みがブロックされます。

ページを読み込んだときに訪問者のログインステータスを自動的に検出したい場合は、Javascript SDKによって公開されているさまざまな認証イベント( "auth.authResponseChange"、 "auth.login"など)に接続するか、 「FB.getLoginStatus」メソッドを使用して訪問者のステータスを手動で要求します。これらのイベントの詳細については、https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

+0

を思い付いた私はそれを見ていたものであり、それは私が、私はまだ黙ってそれらのチュートリアルを使用してユーザーをログインすることができてやりなさい持っているものとかなり似ています。 ( –

+0

Javascript SDKのみを使用してログインしているユーザーを検出する場合は、「[FB.init](http://developers.facebook.com)」の「status」パラメータを設定してください/docs/reference/javascript/FB.init/) "メソッドをtrueに設定すると、ページロード時にユーザーのログインステータスをフェッチするようにFacebookに促されます。また、FB.getLoginStatusの第2パラメータとしてブール値フラグを渡すこともできますあなたの更新されたコードは 'FB.getLoginStatus(cb、true);' –

0

でご覧になれます。再びFacebookのチュートリアルを読んで、これは私が

window.onload=function(){ 
var url = "http://mysite.com/"; 
FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
     FB.api('/me', function(response) { 
     $.post(url, { 'op':'facebook','name':response['name'],'id':response['id'],'email':response['email']}, 
      function(data) { 
       parent.location.reload(); 

      }); 
     }); 
    } 
    }); 
}; 
+0

ですこれはまだそれほど安全ではありません、ちょうどそのことを念頭に置いてください誰かが誰かのfbID/Nameと$ .post()をコンソールから送ることができます。私は私のアプリケーションにauthTokenを渡して、サーバーに "/ me" – Greg

関連する問題