来自facebook图API的响应出错

时间:2015-03-22 11:52:41

标签: javascript facebook facebook-graph-api

我的代码到现在为止:

<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的新手,所以请原谅我可能犯过的任何错误。

1 个答案:

答案 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/