使用javascript FB.api获取Facebook数据未登录时无法正常工作

时间:2015-08-29 04:13:34

标签: facebook

我有以下代码来显示我网站上的用户。

function getFBData()
{
    FB.api(
    '/*fbID*/',
    function (response) {
      if (response && !response.error) {
        /*CODE*/
      }
    }
    );
}
getFBData();

当用户通过Facebook插件登录该网站时,它工作正常。但是,当用户未登录时,不会获取任何内容。

用户是否真的需要登录才能执行FB.api?

2 个答案:

答案 0 :(得分:0)

实际上用户必须登录Facebook才能使用Facebook Api, 您可以使用下面的代码检查用户的状态,以便在连接时获取其数据或要求他再次登录。

  FB.init({
             appId: 'xxxxxxxxxxxxxxxxxxx',          
             channelUrl: '//www.yoursite.com/fbsdk-channel.aspx',   
             status: true,                  
             cookie: true,                  
             xfbml: true,                   
             oauth: true
         });

    FB.getLoginStatus(function (response) {
            if (response.status === 'not_authorized') {   
 /* The user has already logged into FB but not authorized the your webpage */
        }
        else if (response.status === 'connected') {
 /* The user has logged into FB and authorized the "App" to get their user information */
    }
    else { /* The user has not yet logged into FB */ }
}

答案 1 :(得分:0)

这取决于您可以在未经授权的情况下使用FB.api,但仅适用于需要App Access令牌的API调用。对于具有用户令牌的API调用,您需要授权。当然,如果没有authborization,您无法获取用户的详细信息(通过ID),因此在您的情况下,您必须授权用户。

有关访问令牌和登录的更多信息: