У меня есть подобная кнопка на моем веб-сайте (для пользователей, которым нравится страница fb fan).
Если пользователь щелкает, я проверяю, была ли упущена четность (подписка на события), а затем отображает для них некоторый контент.
Я бы очень хотел помочь в следующем:
Если пользователь зарегистрировался в facebook, и им уже понравилась страница, я хочу, чтобы она отображала «Ты уже фанат!». и показать контент. (вместо того, чтобы отображать кнопку greyed out like)
ИЛИ
Если пользователь не вошел в систему в facebook, и они нажимают кнопку «like», я хочу, чтобы он отображал «Вы уже поклонник!». и показать контент. (вместо того, чтобы отображать кнопку greyed out like)
Редактирование: Ребята, я исследовал это на SO и нашел похожие вопросы, но не совсем то, что мне нужно. Возможно, я ошибаюсь, но если кто-то может предоставить ссылку на тот, который описывает мою точную проблему, это было бы намного более полезно, чем вопрос. Я проверил следующее:
Проверьте, подключен ли пользователь к facebook, а затем проверьте, понравилась ли ему страница
Facebook Like Box: как определить, понравилась ли пользователю страница?
Кнопка Facebook LIKE скрывается, когда страница уже отправлена пользователем
Как проверить, понравилась ли пользователю страница или нет, используя php / javascript
Проверьте, нравится ли пользователю фан-страница
Если вы используете API-интерфейс facebook php. Я придумал эту короткую функцию, которую можно включить внутри файла base_facebook.php в класс BaseFacebook.
public function userIsFan() { $sr = $this->getSignedRequest(); if($sr && is_array($sr)){ if(array_key_exists('page', $sr)){ return $sr['page']['liked'] == 1; } } return 0; }
Убедитесь, что вы используете xfbml, это работает для меня
FB.Event.subscribe('auth.authResponseChange', function(response) { FB.api('/me/likes/[page_id]', function(response) { //console.log(response); - see what the response is on your console. if(response.data[0]) //use script to display your content alert("Liked"); else // just do nothing, display like button alert("Not yet liked"); } ); });
page_id будет идентификатором, а не именем вашей страницы, чтобы узнать идентификатор, просто посетите http://graph.facebook.com/[your fb page name]
надеюсь, что это поможет кому-то в будущем.