我正在使用FB JavaScript SDK并完全遵循FB教程。我已经添加了登录按钮,使用我的FB帐户登录并尝试进行非常基本的FB.api呼叫,但即使在我登录facebook后也没有得到正确的响应。这是代码:
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '291660820848913',
status : true,
cookie : true,
xfbml : true,
oauth : true,
});
FB.api('/me', function(response) {
alert(response.name);
});
};
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>
这给了我一个“未定义”的警告。我做错了吗?
答案 0 :(得分:5)
FB.api('/me', function(response) {
alert(response.name);
});
只有在您知道用户已通过身份验证后才能执行此操作。您应在致电FB.getLoginStatus()
之前致电FB.api()
。
答案 1 :(得分:3)
轻松更改行
js.src = "//connect.facebook.net/en_US/all.js";
到此:
js.src = "http://connect.facebook.net/en_US/all.js";
答案 2 :(得分:2)
确保您之前已登录。
FB.login(function(response) {
console.log(response);
if (response.status=="connected") {
console.log("You're loggued in");
FB.api('/me', function(response) {
alert(response.name);
});
}
});
在此示例中,我强制登录,但考虑先检查状态(http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/)
答案 3 :(得分:2)
您可以订阅该活动:
IE)
FB.Event.subscribe('auth.login', function(response) {
FB.api('/me', function(response) {
alert(response.name);
});
});