Как создать фан/лайк гейт на Facebook?

Я пытаюсь создать простой веер/подобный ворота. Где вы указываете один контент для фанатов и другой контент для фанатов (если они нажали кнопку «Нравится»). Однако, когда я запускаю страницу на вкладке страницы, она не возвращает подписанный запрос, и поэтому я не могу понять, как это сделать. Может ли кто-нибудь опубликовать учебник или исправить это? На данный момент я получил следующий код:

index.php

<?php
require dirname( __FILE__ ) . '/../api/facebook.php';

// Create our application instance
// (replace this with your appId and secret).
$facebook = new Facebook(array(
  'appId'  => '112458478872227',
  'secret' => 'X',
  'cookie' => true
));

$signed_request = $facebook->getSignedRequest();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    <title>Home</title>
</head>
<body>

<?php 
if ( $signed_request['page']['liked'] ) 
{
    echo 'A fan';
}
else
{
    echo 'Not a fan yet.';
}
?>

</body>
</html>

Ссылка:

http://www.facebook.com/talkieslifestylemagazine?sk=app_112458478872227

Приложение Facebook:

Вкладка страницы

  • Название вкладки страницы: Главная
  • URL вкладки страницы: http://apps.talkiesmagazine.eu/facebook/home
  • URL-адрес вкладки защищенной страницы: пусто
  • URL-адрес редактирования вкладки страницы: пустой

person Mark    schedule 19.12.2011    source источник


Ответы (4)


Похоже, что оригинальный постер переключился на использование приложения Wildfire Like Gate. Но все таки...

Ваш сервер выполняет перенаправление до запуска вашего скрипта. Если вы поместите свой код в папку, например http://apps.talkiesmagazine.eu/facebook/home/index.php — но вы указываете http://apps.talkiesmagazine.eu/facebook/home в качестве URL-адреса — веб-сервер увидит, что http://apps.talkiesmagazine.eu/facebook/home — это папка и перенаправление на http://apps.talkiesmagazine.eu/facebook/home/. Это перенаправление не сохраняет данные POST, содержащие подписанный запрос. Вы можете увидеть, добавили ли вы http://apps.talkiesmagazine.eu/facebook/home в свой браузере, он перенаправляется на http://apps.talkiesmagazine.eu/facebook/home/ .

Изменение URL вкладки на http://apps.talkiesmagazine.eu/facebook/home/ почини это.

Тем не менее, Facebook требует, чтобы у вас был настроен сервер для безопасного обслуживания вашего приложения через https, и для безопасного URL-адреса вкладки был указан этот URL-адрес. У вас есть пустая Secure Page Tab URL, поэтому ее также необходимо изменить, чтобы иметь полнофункциональную вкладку.

person rmarscher    schedule 03.02.2012
comment
Спасибо за ваш ответ, я отметил ваш комментарий как ответ. - person Mark; 04.02.2012


Давайте попробуем это:

1. Создайте простой php-файл в корневом каталоге приложения с именем index.php со следующим кодом:

<?

echo "POST check<br /><pre>";
print_r ($_POST);
echo "</pre>";

?>

2. Перейдите на вкладку приложения и проверьте, что появилось.

2a. Если отображается только сообщение «POST check», проверьте URL-адрес приложения на странице настроек приложения. Возможно, вы забыли закрыть URL знаком / или где-то есть пробел.

2b, если за сообщением "POST check" следует структура массива, что-то не так с вашей реализацией SDK.

person Sándor Tóth    schedule 03.02.2012

Судя по всему, в вашем примере используется PHP SDK Facebook. Если вы хотите реализовать что-то более простое и относительно прямолинейное, взгляните на этот Facebook Fan/ Ставьте лайк Gate на GitHub.

Я использовал его на нескольких вкладках Facebook в прошлом, и он хорошо мне послужил. Существует также ветвь «JavaScript setup» с js sdk и настройкой конфигурации приложения, которая готова к работе.

person Moz Morris    schedule 19.12.2011
comment
К сожалению, это тоже не работает. Проблема осталась прежней, подписанный_запрос просто пуст. Кто-нибудь понял, как так получилось? Это очень расстраивает, что я делаю не так? - person Mark; 19.12.2011
comment
@Mark Я так понимаю, вы просматриваете свою страницу в «незащищенном режиме» на Facebook? - person Moz Morris; 19.12.2011
comment
Я мог бы, я не знаю. Где я могу проверить? - person Mark; 19.12.2011
comment
@ Марк Я думаю, что ты должен быть, так как ты не сможешь увидеть страницу. Я имел в виду небезопасный режим просмотра в настройках учетной записи. - person Moz Morris; 19.12.2011
comment
Это правильно. Я не просматриваю https, но это не должно иметь значения, верно? Все как гейты на других страницах просто работают =/ Или PHP не работает и только Javascript? - person Mark; 19.12.2011
comment
Нет, просто удостовериться, так как у вас нет настройки версии https. - person Moz Morris; 19.12.2011
comment
Нет, я тоже не исправил. - person Mark; 20.12.2011