0

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 ポップアップが開きますが、このように自動的に行われると、多くのポップアップ ブロッカーやブラウザーによってブロックされ、アプリを許可していないユーザーにも表示されます。

私はそれを慎重に行いたいのですが、方法がわかりません:S

誰かがjavascriptを使用してログインする方法を教えてくれたら、それは素晴らしいことです:)

4

2 に答える 2

1

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

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

于 2012-05-10T01:42:46.643 に答える
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();

           });
        });
    }
  });
};
于 2012-05-10T02:08:44.523 に答える