6

私は単にFacebookConnectをセットアップして、すでに確立されているサイトで登録フォームに登録するか、Facebook Connectに登録するかを選択できるようにしようとしています(これは実際よりも簡単なはずです。古いドキュメントが私を狂わせています)。ユーザーがボタンをクリックすると、ポップアップが開き、私が正しく尋ねたことを許可するように求められます。ただし、[許可]をクリックすると、再度許可するように求められます(ただし、基本的なプロファイル情報のみ)。これは明らかに、fb:login-buttonをクリックするというデフォルトのアクションからトリガーされます。ただし、既にログインしていて、アプリがデータにアクセスすることを許可している場合でも同様です。

<fb:login-button size="medium" length="long" v="2" onclick="fb_login()"></fb:login-button>
<div id="fb-root"></div>
<script src="http://static.ak.fbcdn.net/connect/en_US/core.js"></script>
<script>
    FB.init({appId: '<app_id>', status: true, cookie: true, xfbml: true});

    function fb_login() {
        FB.login(function(response) {
            if (response.session) {
                if (response.perms) {
                    // they have allowed the app, continue with registration
                }
            }
        }, {perms:'email,user_birthday'});
    }
</script>
4

2 に答える 2

8

どうやら、FBMLでアクセス許可を割り当てるだけで、FB.loginの呼び出しを完全にバイパスできます。Facebookが彼らのドキュメント(暴言)でそれを言及するならば、それは素晴らしいでしょう。

<fb:login-button size="medium" length="long" v="2" perms="email,user_birthday" onlogin="fb_login()"></fb:login-button>
<div id="fb-root"></div>
<script src="http://static.ak.fbcdn.net/connect/en_US/core.js"></script>
<script>
    FB.init({appId: '<app_id>', status: true, cookie: true, xfbml: true});

    function fb_login() {
           // they have allowed the app, continue with registration
    }
</script>
于 2010-06-05T02:04:10.520 に答える
0

fb:login-button問題は、すでに独自のデフォルト動作を持つ「onclick」イベントを割り当てることにあると確信しています。そのlogin-buttonタグを捨てて、そのonclickイベントで独自の通常のhtmlボタン(リンク、画像、または必要なもの)を作成するだけです。

于 2010-06-04T21:13:30.993 に答える