2012-07-25 82 views
1

我正在使用facebook JS SDK。我目前登录脸书,我的代码是以下:Facebook js sdk无法检索登录用户的名称

$(document).ready(function() { 

    FB.init({ 
     appId: "myappID", 
     xfbml: true 
    }); 

    FB.api('/me', function(response) { 
     alert(response.name); 
    }); 

}); 

我收到的警报说“未定义”。为什么?有没有办法让Facebook独特的应用程序ID?

非常感谢您

+0

应用程序ID或用户名?检查错误控制台。 – 2012-07-25 11:01:48

+0

应用程序ID将是完美的 – 2012-07-25 11:52:17

+0

你确定吗?因为你现在应该已经__app的id__了......并且与当前正在使用你的应用的用户无关。 – CBroe 2012-07-25 11:56:04

回答

1

我得到警报说,“不确定”。为什么?

很有可能是因为您的用户帐户没有已将连接到您的应用程序。

首先调用FB.login,并将API调用放入回调处理程序中。

1

因为你还没有授权你的应用程序。

使用FB.login先登录到您的应用程序。

1

我发现奇怪的是,你正在初始化一个jQuery的$(document).ready中的FB JS SDK。

你在做同步加载吗?如果你遵循Facebook的指示,你实际上正在做一个异步加载,这是更好的,因为不阻止页面加载。在异步加载中,包含all.js(Facebook的JS SDK)的<script>标记在$(document).ready事件触发后附加到文档DOM。

因此,您正尝试访问尚未定义的js对象(FB)。根据Facebook的文档指示,最好将代码分配给window.fbAsyncInit:

window.fbAsyncInit = function() { 
    FB.init({ 
     appId: 'AppID', 
     cookie: true, // I think you'll need this cookie to make the API call 
     xfbml: true 
    }); 

    // Additional initialization code here 
    FB.api('/me', function(response) { 
     alert(response.name); 
    }); 
}; 

祝你好运!