Возможный дубликат:
Бесшовный способ проверить, нравится ли пользователю страница
Я думаю, что так много людей задали этот вопрос, но все же мне нужно решение, чтобы проверить, понравился ли логин пользователю страницу или нет. Я пробовал так много решений, но ни одна из них не работала.
Я пробовал со следующим кодом
function parsePageSignedRequest() { if (isset($_REQUEST['signed_request'])) { $encoded_sig = null; $payload = null; list($encoded_sig, $payload) = explode('.', $_REQUEST['signed_request'], 2); $sig = base64_decode(strtr($encoded_sig, '-_', '+/')); $data = json_decode(base64_decode(strtr($payload, '-_', '+/'), true)); return $data; } return false; } if($signed_request = parsePageSignedRequest()) { if($signed_request->page->liked) { echo "This content is for Fans only!"; } else { echo "Please click on the Like button to view this tab!"; } }
Я не мог получить ответ пользователя «понравился». Поэтому любой может проинструктировать меня, как я должен сделать, чтобы получить «понравившуюся» реакцию пользователя.
function parse_signed_request($signed_request, $secret) { list($encoded_sig, $payload) = explode('.', $signed_request, 2); // decode the data $sig = base64_url_decode($encoded_sig); $data = json_decode(base64_url_decode($payload), true); if(strtoupper($data['algorithm']) !== 'HMAC-SHA256') { $error['signed_request'] = 'Unknown algorithm. Expected HMAC-SHA256'; return null; } // check sig $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true); if($sig !== $expected_sig) { $error['bad_signed_json'] = 'Bad Signed JSON signature!'; return null; } return $data; } function base64_url_decode($input) { return base64_decode(strtr($input, '-_', '+/')); } $signed_request_data = parse_signed_request($_REQUEST['signed_request'],$fb_app_secret); if($signed_request_data['page']['liked']) { print "Content for Useres who have liked your page..."; }
Я думаю, вам нужно будет использовать FQL и специально запросить таблицу page_fan .
Прочитайте документацию FB, о которой я упомянул в приведенных выше ссылках. Далее, чтобы создать такие запросы FQL, вы можете посетить этот связанный ответ .
Это все, что я могу сказать сейчас, надеюсь, это помогает!
Редактировать:
@ Ответ MuckyBuzzwoo также будет работать на вкладках страниц, у signed_request есть понравившееся поле $data['page']['liked']
которое показывает, понравился ли текущий посетитель на вкладке понравилась страница или нет.