我的代码到现在为止:
<script>
window.fbAsyncInit = function(){
FB.init({ appId:'my app id', status:true, cookie:true, xfbml:true});
FB.getLoginStatus(function(response){
if (response.status != "unknown") // makes sure the user is already logged in.
{
FB.api('/me', function(response) {
console.log(response);
});
}
});
};
// Load the SDK Asynchronously
(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>
我在控制台中收到的错误是"An active access token must be used to query information about the current user."
但是我已经确保用户从代码中看到了,然后我在哪里犯了错误?
更新:从答案和评论来看,问题似乎是我的网站未经授权,尽管用户已登录。 我只想在网站上显示用户的真实姓名,并附上欢迎信息。我可以使用facebook图谱API吗? 我不想进入授权步骤,因为从用户的角度来看,这似乎是不必要的。
我是编程,javascript和facebook图表api的新手,所以请原谅我可能犯过的任何错误。
答案 0 :(得分:0)
您在哪里确保用户已登录?您没有在任何地方授权用户,您只检查他是否已登录。例如:
FB.login(function(response) {
if (response.authResponse) {
//user just authorized your app
}
}, {scope: 'email,public_profile'});
您可能也想正确使用getLoginStatus:
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
//user is authorized
} else {
//user is not authorized
}
});
来源:http://www.devils-heaven.com/facebook-javascript-sdk-login/