Javascript Fb.api未定义用户
我有以下问题: 一旦用户登录facebook,如果我运行以下代码:Javascript Fb.api未定义用户,javascript,facebook,facebook-graph-api,Javascript,Facebook,Facebook Graph Api,我有以下问题: 一旦用户登录facebook,如果我运行以下代码: FB.api('/me', function(user) { alert(user.name); }); 它会弹出一个写有“Udefined”的警报 但如果我按以下方式更改代码: FB.api( /[MY_REAL_FACEBOOK_ID], function(user) { alert(user.name); }); 它以正确的方式响应 这怎么可能? 为什么“/me”永远不起作用?我想你可能是在应用
FB.api('/me', function(user) {
alert(user.name);
});
它会弹出一个写有“Udefined”的警报
但如果我按以下方式更改代码:
FB.api( /[MY_REAL_FACEBOOK_ID], function(user) {
alert(user.name);
});
它以正确的方式响应
这怎么可能?
为什么“/me”永远不起作用?我想你可能是在应用程序的上下文而不是用户的上下文中查询“/me”。文档没有尽可能明确,但我也遇到了同样的问题 你能用吗 在设置了FB.init之后,我调用了FB.getLoginStatus,类似于下面的内容。也许有更好的方法可以做到这一点,但对我来说很有效 希望这有助于:
FB.getLoginStatus(function (response) {
if (response.session) {
// logged in and connected user, someone you know
graphUrl = "https://graph.facebook.com/me?access_token=" + response.session.access_token + "&callback=displayUser"
var script = document.createElement("script");
script.src = graphUrl;
document.body.appendChild(script);
} else {
// no user session available, someone you dont know
}});
function displayUser(user) {
alert(user.name);
}
使用以下代码克服未定义的问题:
window.fbAsyncInit = function() {
// init the FB JS SDK
FB.init({
appId : your_app_id,
status : true,
xfbml : true
});
// Additional initialization code such as adding Event Listeners goes here
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
alert("connected");
connecter=true;
FB.api('/me', function(user) {
alert(user.name);
alert(user.first_name);
alert(user.last_name);
alert(user.email);
});
}
});
这也是直截了当的:-/你能在那一行上打断调试器,或者把你要取回的对象转储掉吗?谢谢你的asnwer。。。我是facebook API的新手,我甚至不知道如何调试错误。我怀疑错误在FB.init中,但我按照facebook文档中的解释设置了它:FB.init({appId:[MY_APP_ID],status:true,cookie:true,xfbml:true});它仍然不起作用。为什么需要访问令牌?文档中没有提到这一点。它只告诉我们FB.init、标签FB.login-button和FB.api需要用户的信息。访问令牌也是必要的吗?什么不起作用?您是否同时得到响应和会话值?据我所知,给定的access_令牌允许您使用的应用程序代表用户进行允许的呼叫。谢谢:那么这里的修复方法是什么?您正在测试
response.status==“connected”
而不是测试response.session
是否定义为另一个答案?这样更好吗?