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

        FB.getLoginStatus(function(response) 
        {
              if(response.status === 'connected') 
                {
                    if (response.authResponse != 'undefined') 
                    {
                        window.location = '/fb_redirect.php';
                    }
                } else if(response.status === 'not_authorized')
                {

                } else 
                {
                    FB.Event.subscribe('auth.login', function(response) 
                    {
                        window.location = '/fb_redirect.php';
                    });
                }
            });
        };

        (function(d, s, id) {
            var js, fjs = d.getElementsByTagName(s)[0];
            if (d.getElementById(id)) return;
            js = d.createElement(s); js.id = id;
            js.src = '//connect.facebook.net/en_US/all.js#xfbml=1&appId=ID';
            fjs.parentNode.insertBefore(js, fjs);
            }(document, 'script', 'facebook-jssdk'));
    </script>

<div class='fb-login-button' data-show-faces='false' scope='email' registration-url='http://www.sportannica.com/fb_redirect.php' size='large' data-width='200' data-max-rows='1'></div>

これが私が今使っているものです。すでにアプリを受け入れているユーザーの場合、問題なく動作します。ただし、初めてのユーザーの場合、ログインボタンをクリックしても、アプリを使用しているユーザーの数や要求している権限の種類など、アプリの詳細を表示する画面はありません。/fb_redirect.phpに直接向かいます。

ここに画像の説明を入力してください

写真で指定されているサイトのURLを参照してください。それは、FBにログインしてアプリを受け入れるときにページがリダイレクトされるURLですか?

4

2 に答える 2

0

ログインボタンは、ユーザーがFacebookにログインしていない場合に使用されます。ユーザーがログインしているが、アプリへのアクセス許可が付与されていない場合は、たとえばoauthダイアログを使用する必要があります。

あなたはこれを行うことによってそれを達成することができます

FB.getLoginStatus(function(response) {
    if(response.status === 'connected'){
        if (response.authResponse != 'undefined')
            window.location = '/fb_redirect.php';
    }else if(response.status === 'not_authorized'){
    //it means we have a user but he hasn't granted any permissions to our app
    //we're going to redirect him to the permission page
    window.location = 'https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&response_type=code&redirect_uri=YOUR_APP_URL&scope=email';
    } else {
    //the user is not logged in, as you already have a login button you don't have to do nothing  
    }
});

//this should be outside the FB.getLoginStatus function
FB.Event.subscribe('auth.login', function(response) {
    window.location = '/fb_redirect.php';
});
于 2013-03-22T19:02:07.983 に答える
0

正しい構文はdata-scope="email"、ではなくscope="email"です。

于 2013-05-14T02:10:05.773 に答える