4

私は最近、現在取り組んでいるウェブサイトに Facebook を統合し始めました。これまでのところ、ユーザーはログインでき、ログイン後に情報を取得できます。私が理解するのに苦労しているのは、最初のログイン HTML ページの後に FB.api() 呼び出しを行う方法です。Javascript SDK がアクセス トークンなどを自動的に処理することは知っていますが、それをどのように使用するかはわかりません。私がこれまでに持っているものは次のとおりです。

    window.fbAsyncInit = 関数()
        {
                FB.init({
                    appId : 'API_KEY', // アプリ ID を設定
                    channelUrl : 'DOMAIN', // チャンネル ファイル
                    status : true, // ログイン状態をチェック
                    cookie : true, // Cookie を有効にして、サーバーがセッションにアクセスできるようにします
                    xfbml : true // XFBML を解析します
                });

            FB.Event.subscribe('auth.authResponseChange', function(応答)
            {
                console.log("権限変更");
                if (response.status === '接続')
                {

                    console.log("FaceBook に接続しました");
                    //成功
                }    
                そうでなければ (response.status === 'not_authorized')
                {
                    console.log("Facebook にログインしましたが、私たちではありません");
                    フェイスブックログイン();
                    //失敗した
                }
                そうしないと
                {
                    console.log("両方からログアウトしました");
                    フェイスブックログイン();
                    //未知のエラー
                }
            });
        };   
        関数 FacebookLogin()
        {
            FB.login(関数(応答)
            {
                if (response.authResponse)
                {
                    window.location = "test.php";
                }
                そうしないと
                {
                    console.log('ユーザーがログインをキャンセルしたか、完全に承認しませんでした。');
                }
            },{scope: 'email,user_birthday,read_friendlists'});
        }

        // SDK を非同期でロードする
        (関数(d){
            var js、id = 'facebook-jssdk'、ref = d.getElementsByTagName('script')[0];
            if (d.getElementById(id)) {return;}
            js = d.createElement('スクリプト'); js.id = id; js.async = true;
            js.src = "//connect.facebook.net/en_US/all.js";
            ref.parentNode.insertBefore(js, ref);
        }(資料));

 

このコードはすべて、ログイン HTML ページの上部にあるスクリプト タグ内にあります。ユーザーがログインして認証されたら、FB.api() 関数を使用して情報を取得し、登録フォームに入力する別のページにユーザーを誘導します。提案やヒントはありますか?

4

1 に答える 1

0

次の関数を使用して、ユーザーが正常にログインした後にユーザーに関する情報を取得し、任意の DOM 要素に表示できます。

 function fqlQuery(){
            FB.api('/me', function(response) {
                 var query = FB.Data.query('select name, hometown_location, sex, pic_square from user where uid={0}', response.id);
                 query.wait(function(rows) {

                   document.getElementById('name').innerHTML =
                     'Your name: ' + rows[0].name + "<br />" +
                     '<img src="' + rows[0].pic_square + '" alt="" />' + "<br />";
                 });
            });
        }

他の例はここにあります

于 2013-08-23T10:00:16.907 に答える