javascript – fb.api在连接的用户上返回’undefined’

前端之家收集整理的这篇文章主要介绍了javascript – fb.api在连接的用户上返回’undefined’前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
下面的代码给我一个关于名称和电子邮件的“未定义”.但是,用户登录是因为我有访问令牌和UID?

function getToken(){
    FB.login(function(response) {
        if (response.authResponse) {
            var access_token = response.authResponse.accessToken;
            var uid = response.authResponse.userID;
            document.getElementById('accessToken').value=access_token;
            document.getElementById('uid').value=uid;
            FB.api('/me',function(response) {
                console.log('Good to see you,' + response.name + '.' +response.email);
            });
            document.forms['token'].submit();
        } else {
            return false;
        }
    },{scope:'email,user_likes,friends_likes'});
}

当我输出fb.api对控制台的完整响应时,我得到了

[11:46:10.369] ({error:"load-error: unknown"})

解决方法

我现在看看你想要做什么和问题.

为什么失败:

您正在进行异步请求(使用FB.api方法),然后提交一个表单(这是一个猜测,因为您没有包含所有代码),它会重新加载整个页面,搞乱异步请求.

至于如何解决问题:

在我看来,最好的解决方案是使用Server-Side authentication process,之后,当画布加载时使用客户端sdk.
这样你就可以在客户端和服务器端访问令牌.

另一种方法是不提交表单,而是使用访问令牌向服务器发出ajax请求(它可以在POST中),因为这两个请求都是异步的(FB.api和服务器上的一个)应该是没事.

猜你在找的JavaScript相关文章