Уведомление о разрешениях предназначено для людей, явно разрешающих приложение, которое, как вы, похоже, и сделали. Вы показываете информацию людям, которые авторизовали ваше приложение и не авторизовали его, а не людям, которым ваша страница понравилась или не понравилась
// alternative to the below but only works on the facebook tab itself
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
if (empty($data["page"]["liked"])) {
echo "You are not a fan!";
} else {
echo "Welcome back fan!";
}
Код здесь - это то, что я ожидаю от людей, которым нравится или не нравится вкладка страницы. Это не имеет никакого отношения к авторизации вашего приложения, расположенного на этой вкладке. Когда пользователю нравится ваша страница, вы не получаете доступ к его идентификатору и т. Д., Только если им нравится страница. Но ваш код, похоже, использует API для проверки, нравится ли пользователю страница. Я предполагаю, что ваш пользовательский объект на самом деле является нулевым, так как пользователь явно не авторизовал приложение на вкладке этой страницы. Имеет ли это смысл?
Так что, если они не предоставили доступ к приложению:
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
}
else {
//user isn't logged in so just show un-liked image
?>
<img style="position:absolute; top:0; left:0; border:0;" id="all" src="//www.website.com/facebook/2011/voucher/fb_like_page.jpg" width="520" height="304" alt="Click LIKE button to get 10% off." />
<?php
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'user_likes'
));
}
$ user здесь будет нулевым, и вы будете говорить людям, что им нравится ваша страница, независимо от того, сделали они это или нет