我有以下代码来显示我网站上的用户。
function getFBData()
{
FB.api(
'/*fbID*/',
function (response) {
if (response && !response.error) {
/*CODE*/
}
}
);
}
getFBData();
当用户通过Facebook插件登录该网站时,它工作正常。但是,当用户未登录时,不会获取任何内容。
用户是否真的需要登录才能执行FB.api?
答案 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),因此在您的情况下,您必须授权用户。
有关访问令牌和登录的更多信息: