0

Facebook JavaScript SDK を使用して、ユーザーを自分のサイトに登録してログインしています。ログインは正常に機能しています。

ただし、データをmysqlに保存したいのですが、コンソールログに「$が定義されていません」というエラーが表示されるたびに。何時間も試行錯誤した後、私は理解できません

  1. 私はここで何を間違っていますか?.

  2. この同じコードを使用して Facebook キャンバス アプリケーションを認証できますか?

私は新しくfb認証の使い方を学んでいます.Plzは私を助けてくれます.

    <script type="text/javascript">
     var button;
     var userInfo;

    window.fbAsyncInit = function () {
    FB.init({ appId:'abccccc', //change the appId to your appId
    status:true,
    cookie:true,
    xfbml:true,
    oauth:true});

showLoader(true);

function updateButton(response) {
    button = document.getElementById('fb-auth');
    userInfo = document.getElementById('user-info');

    if (response.authResponse) {
        register();

        FB.api('/me?', function (info) {
            login(response, info);

        });


        button.onclick = function () {
            FB.logout(function (response) {
                logout(response);
            });
        };

    } else {
        //user is not connected to your app or logged out
        button.innerHTML = 'Login';
        button.onclick = function () {
            showLoader(true);
            FB.login(function (response) {
                if (response.authResponse) {
                    FB.api('/me', function (info) {
                        login(response, info);
                    });
                } else {
                    //user cancelled login or did not grant authorization
                    showLoader(false);
                }
            }, {scope:'email,user_birthday,status_update,publish_stream,user_about_me'});
        }
    }

}

function register() {

    console.log('Welcome!  Fetching your information.... ');
    FB.api('/me', function (response) {

        console.log('Good to see you, ' + response.name + '.' + ' Email: ' + response.email + ' Facebook ID: ' + response.id);


    });
    $.post('send.php', { option:'fb_register', name:response.name, email:response.email}, function (data) {
        alert('registerd')
    });

}

// run once with current status and whenever the status changes
FB.getLoginStatus(updateButton);
FB.Event.subscribe('auth.statusChange', updateButton);
};
(function () {
var e = document.createElement('script');
e.async = true;
e.src = document.location.protocol
        + '//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
 }());


 function login(response, info) {
 if (response.authResponse) {
    var accessToken = response.authResponse.accessToken;

    userInfo.innerHTML = '<img src="https://graph.facebook.com/' + info.id + '/picture">' + info.name
            + "<br /> Your Access Token: " + accessToken;
    button.innerHTML = 'Logout';
    showLoader(false);
    document.getElementById('other').style.display = "block";
   }
  }

function logout(response) {
userInfo.innerHTML = "";
document.getElementById('debug').innerHTML = "";
document.getElementById('other').style.display = "none";
showLoader(false);
}

 //stream publish method
 function streamPublish(name, description, hrefTitle, hrefLink, userPrompt) {
showLoader(true);
FB.ui(
        {
            method:'stream.publish',
            message:'',
            attachment:{
                name:name,
                caption:'',
                description:(description),
                href:hrefLink
            },
            action_links:[
                { text:hrefTitle, href:hrefLink }
            ],
            user_prompt_message:userPrompt
        },
        function (response) {
            showLoader(false);
        });

}
function showStream() {
FB.api('/me', function (response) {
    //console.log(response.id);
    streamPublish(response.name, 'I like the articles of Thinkdiff.net', 'hrefTitle', 'http://thinkdiff.net', "Share thinkdiff.net");
});
 }
</script>
4

1 に答える 1

1

あなたの関数は、おそらくjQueryからregisterfunction を呼び出しています。$.postを定義するものを何もロードしていない場合$、それは定義されないため、 の呼び出し$.postは失敗します。

を提供するjQueryをロードすることをお勧めします$.post

于 2013-04-15T05:26:32.980 に答える