我有以下问题:
如果我运行以下代码,用户登录 facebook 后:
FB.api('/me', function(user) {
alert(user.name);
});
它弹出一个写有“Udefined”的警告。
但是如果我按以下方式更改代码:
FB.api( /[MY_REAL_FACEBOOK_ID], function(user) {
alert(user.name);
});
它以正确的方式响应。
这怎么可能? 为什么“/我”永远不起作用?
最佳答案
我认为您可能是在应用程序而不是用户的上下文中查询“/me”。文档没有尽可能明确,但我遇到了同样的问题。
你能使用FB.getLoginStatus吗? ?
设置 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);
}
关于javascript - Fb.api 未定义用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5299194/