2013-10-30 44 views
0

我想使用php回顯FB用戶的response.name,但它不起作用。我也提醒它,結果是「未定義」FB Connect:顯示response.name

<div id="fb-root"></div> <script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
    appId  : 'xxxxxxxxx', 
    channelUrl : 'www.xxxxxxxxx.com', 
    status  : true, 
    cookie  : true, 
    xfbml  : true 
    }); 
    FB.Event.subscribe('auth.authResponseChange', function(response) { 
    if (response.status === 'connected') { 
     alert(getUserInfo()); 
    } else if (response.status === 'not_authorized') { 
     FB.login(); 
    } else { 
     FB.login(); 
    } 
    }); 
    }; 
    (function(d){ 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
    }(document)); 
    function getUserInfo() { 
    var str=''; 
     FB.api('/me', function(response) { 
     str=response.name; 
    }); 
    return str 
    } 
</script> 
<fb:login-button show-faces="false" width="200" max-rows="1" autologoutlink='true'></fb:login-button> 

我想獲得response.name,然後將其插入數據庫。我想,我需要知道的是如何把它放在php的變量中?或者把它放在JavaScript變量中,然後發送到php文件。

+0

str = response.name;在回調塊中,所以它會被異步調用。你可以在該調用中做一個ajax回發 –

+0

你可以給我示例嗎?怎麼做? –

回答

0
function getUserInfo() { 
    var str=''; 
     FB.api('/me', function(response) { 
     str=response.name; 

     //Do ajax post to php here 
    }); 

} 
+0

還有其他方法嗎? –