Как создать фан-лайк на Facebook? - PullRequest
0 голосов
/ 19 декабря 2011

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

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

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

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

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

Ответы [ 4 ]

4 голосов
/ 03 февраля 2012

Похоже, что оригинальный постер переключился на приложение Wildfire's 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 пусто, поэтому его также необходимо изменить, чтобы иметь полностью функциональную вкладку.

2 голосов
/ 03 февраля 2012

Не уверен, почему подписанный запрос не отображается для вас.Он все еще работает.

код: http://fbmhell.com/2011/06/facebook-like-gating-in-iframe-tabs/

вкладка страницы: http://www.facebook.com/snipe.net?sk=app_207328155971716

Может быть, это что-то в настройках миграции, что вы должны проверить / снять галочку?За последние несколько месяцев они внесли некоторые изменения.

1 голос
/ 03 февраля 2012

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

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

<code><?

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

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

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

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

0 голосов
/ 19 декабря 2011

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

В прошлом я использовал его на нескольких вкладках Facebook, и он мне очень понравился. Также есть ветка ' JavaScript setup ' с настройкой js sdk и конфигурации приложения, готовая к работе.

...