2013-06-26 2 views
0

Я внедрил facebook в свое веб-приложение. Однако эта ошибка продолжает отображаться (когда фейсбук не используется). Активный токен доступа должен использоваться для запроса информации о текущем пользователе.Точка доступа FB

An active access token must be used to query information about the current user. 

Вот мой Facebook JS:

window.fbAsyncInit = function() 
{ 
FB.init({ 
appId  : '<?php echo AppInfo::appID(); ?>', 
channelUrl : "<?php //echo URL.'scripts/facebook/channel.php'; ?>", 
status  : false, 
cookie  : true, 
xfbml  : false 
}); 

FB.api('/me',function(){}); 

FB.Event.subscribe('auth.authResponseChange', function(response) { 

if (response.status === 'connected') 
{ 
    window.location.replace("<?php echo Router::$url; ?>"); 
} 
else if (response.status === 'not_authorized') 
{ 
    FB.login(function(response){}, {scope:'email'}); 
} 
else 
{ 
    FB.login(function(response){}, {scope:'email'}); 
} 

}); 
}; 

(function(d, s, id) 
{ 
var js, fjs = d.getElementsByTagName(s)[0]; 
if (d.getElementById(id)) 
{ 
    return; 
}; 
js = d.createElement(s); 
js.id = id; 
js.src = "<?php echo URL.'scripts/facebook/all.js'; ?>"; 
fjs.parentNode.insertBefore(js, fjs); 
} 
(document, 'script', 'facebook-jssdk')); 

Я искал в Интернете и нашел FB.api(). К сожалению, это не помогает ...

+1

Вы не можете запросить API для '/ me', не подключаясь к вашему приложению в первую очередь. – CBroe

ответ

1

Вам необходимо обернуть свой звонок FB.api внутри обратного вызова до FB.getLoginStatus, а затем выполнить его только в том случае, если пользователь действительно подключен.

Кроме того, вы не можете позвонить FB.login за пределами события, вызванного пользователем, такого как событие click.

0

Вы должны создать токен доступа. Токен доступа сообщает Facebook, какой пользователь вы хотите, и дает вам разрешение на выполнение запросов от их имени.

manually generate one. Или вы можете добавить процесс проверки подлинности для Javascript, который может быть found here.

Смежные вопросы