2016-03-29 10 views
-1

私はスクリプトを変更しました。これは私のコードです。 コンソールにUncaught ReferenceErrorがあります:baseUrlが定義されていません。 私はなぜそれを示しているのかわかりません。私はここで何を変えるべきですか? コントローラにデータを渡す必要がありますが、動作していません。誰も私を助けることができるエラーは何ですか。jqueryを使用してログイン後のデータを取得する方法

<script> 
     function testAPI() { 
     console.log('Welcome! Fetching your information.... '); 
     var url = '/me?fields=name,email,link'; 
     FB.api(url, function (response) { 
     console.log(response); 
     var imgUrl = 'http://graph.facebook.com/' + response.id + '/picture/?    type=large'; 
     localStorage.setItem("fbImg", imgUrl); 
    var fbId = response.id; 
    var fbName = response.name; 
     var fbEmail = response.email; 

    $.ajax({ 
    url: '<?php echo url('facebooklogin'); ?>', 
    type: 'POST', 
    data: {facebookId: fbId, username: fbName, email: fbEmail}, 
    success: function (message) 
    { 
    console.log(message); 
    console.log('good'); 
    console.log(message.success); 
    if (message.success == 1) 
    { 
    //location.reload(); 
    //window.location.href = '<?php echo url('babyname/create'); ?>'; 
    } 
    if (message.success == 2) 
    { 
    location.reload(); 
    } 
    } 
    }); 
    }); 
    } 

    var csrf = ''; 
    function statusChangeCallback(response) { 
    console.log(response); 

if (response.status === 'connected') { 

getFBDetails(response); 
    } else if (response.status === 'not_authorized') { 

    var c = 'Please log ' + 'into this app.'; 

    console.log(c); 
    } else { 

    var c = 'Please log ' + 'into Facebook.'; 

console.log(c); 
    } 
    } 

function checkLoginState() { 
FB.getLoginStatus(function (response) { 
statusChangeCallback(response); 
}); 
} 

    window.fbAsyncInit = function() { 
    }; 
// Load the SDK asynchronously 
(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/sdk.js"; 

fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 
// Here we run a very simple test of the Graph API after login is 
// successful. See statusChangeCallback() for when this call is made. 
function getFBDetails(resObj) { 
console.log('Welcome! Fetching fb information.... '); 
    FB.api('/me', {locale: 'en_US', fields: 'name, first_name, last_name, gender, email'}, function (response) { 
    var c = 'Thanks for logging in, ' + response.name + ', ' + response.email + ', ' + resObj.authResponse.accessToken; 
//document.getElementById('status').innerHTML = c; 
    console.log(c); 
    console.log(response); 
    console.log(resObj.authResponse.accessToken); 
    testAPI(); 
    }); 
    } 

function fb_login() { 
FB.init({ 
appId: '1694320824153828', 
    cookie: true, 
    xfbml: true, 
    version: 'v2.5', 
    status: true, 
    }); 
    FB.login(function (response) { 
    FB.getLoginStatus(function (response) { 
    statusChangeCallback(response); 
    }); 
    }, {scope: 'public_profile,email'}); 
    } 
    </script> 
+0

であるあなたは、 'はconsole.log(私を)使用して取得するかを見ます。 FB.api( "/ me"、function(me){' – itzmukeshy7

答えて

0

のようなアクセスのフィールドを追加します。ここでは

FB.api('/me', {fields: 'last_name'}, function(response) { 
    console.log(response); 
}); 

または

FB.api('/me?fields=name,email', function(response) { 
    console.log(response); 
}); 

をサンプルコードは

FB.init({ 
    appId: '1694320824153828', 
    cookie: true, 
    xfbml: true, 
    version: 'v2.5' 
}); 
var statusChangeCallback = function (me) { 
    if (me.id) { 
     var id = me.id; 
     var email = me.email; 
     var first_name = me.first_name; 
     var last_name = me.last_name; 
     var live = ''; 
     if (me.hometown != null) 
     { 
      live = me.hometown.name; 
     } 

     var passData = 'fid=' + id + '&email=' + email + '&first_name=' + first_name + '&last_name=' + last_name + '&live=' + live; 
//alert(passData); 

// add your ajax code here 

    } 
}; 
function fb_login() { 
    FB.getLoginStatus(function (response) { 
     console.log(response); 
     if (response.authResponse) { 
      FB.api('/me?field=name,email', statusChangeCallback); 
     } else { 
      FB.login(function (response) { 
       if (response.authResponse) { 
        FB.api('/me?field=name,email', statusChangeCallback); 
       } else { 
        //user cancelled login or did not grant authorization 
       } 
      }, {scope: 'email'}); 
     } 
    }); 
} 
+0

それは私のために働いていませんでした – ilakkiya

+0

私の編集した答えを見てください。 –

+0

私は同じことをやってみました。 – ilakkiya

関連する問題