Php Facebook登录页面在被喜欢后更改

Php Facebook登录页面在被喜欢后更改,php,facebook,Php,Facebook,我试图向喜欢我的页面的用户展示一个不同的页面, 我正在使用这个代码,但它似乎不起作用,有人能帮忙吗 基本上,它应该显示main index.html作为登录页,然后当人们单击like按钮时,它将显示fans_only.html页面,在用户喜欢该页面后欢迎他们 <?php require_once 'facebook/facebook.php'; /* * "appId" and "secret" values get from your Facebook application sett

我试图向喜欢我的页面的用户展示一个不同的页面, 我正在使用这个代码,但它似乎不起作用,有人能帮忙吗

基本上,它应该显示main index.html作为登录页,然后当人们单击like按钮时,它将显示fans_only.html页面,在用户喜欢该页面后欢迎他们

<?php
require_once 'facebook/facebook.php';
/*
 * "appId" and "secret" values get from your Facebook application settings
 */
$config = array (
    'appId' => 'xxx',
    'secret' => 'xxx'
);
$facebook = new Facebook ($config);
{

    $signed_request = $facebook->getSignedRequest();

    if ($signed_request)
    {
        if (isset ($signed_request ['page'] ['liked']) && $signed_request ['page'] ['liked'])
        {
            //Place your secret content here
            //echo '<p>This is a secret content.</p>';
            require ("fans_only.html");
            exit;
        }
    }
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>intro</title>
<!--Adobe Edge Runtime-->
    <script type="text/javascript" src="edge_includes/jquery-1.6.2.min.js"></script>
    <script type="text/javascript" src="edge_includes/jquery.easing.1.3.js"></script>
    <script type="text/javascript" src="edge_includes/edge.0.1.3.min.js"></script>
    <script type="text/javascript" src="edge_includes/edge.symbol.0.1.3.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="index_edge.js"></script>
    <script type="text/javascript" charset="utf-8" src="index_edgeActions.js"></script>
    <link rel="stylesheet" href="index_edge.css" />
<!--Adobe Edge Runtime End-->
<style type="text/css">

        body {
            background:url(images/preloader.gif) 255px 10px no-repeat #fff;
        }
</style>        

</head>

<body style="margin:0;padding:0;">
    <div id="stage" class="EDGE-22385971">
    </div>
</body>

</html>

简介
身体{
背景:url(images/preload.gif)255px10px无重复#fff;
}
尝试以下代码:

$facebook = new Facebook(array(
  'appId'  => 'APP_ID',
  'secret' => 'APP_SECRET',
  'cookie' => true,
));

$session = $facebook->getSession();

$me = null;

if ($session) {
  try {
    $uid = $facebook->getUser();
    $me = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
  }
}


$signed_request = $_REQUEST["signed_request"];

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_log('Unknown algorithm. Expected HMAC-SHA256');
    return null;
  }

  // check sig
  $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
  if ($sig !== $expected_sig) {
    error_log('Bad Signed JSON signature!');
    return null;
  }

  return $data;
}

function base64_url_decode($input) {
  return base64_decode(strtr($input, '-_', '+/'));
}

$data = parse_signed_request($_REQUEST["signed_request"], "APP_SECRET");


if ($data['page']['liked']){

  //SHOW DATA FAN

}else{

   //SHOW DATA NO FAN

}
我试图使用类似的代码设置一个欢迎页面(fan/nofan),但是作为一个noobie,我缺少了一个步骤,即程序(index.php文件)如何知道要显示的页面以及该页面的位置。是将HTML代码插入index.php文件还是调用了对象。下面是为两个不同的欢迎页面设置的facebook sdk。

欢迎页面

当你说“它似乎不起作用”时,你能更具体一点吗?什么是错误消息?另外,如果注释掉require行并使用echo行,会发生什么?那么它能工作吗?抱歉,如果我之前不清楚,我的意思是当我喜欢这个页面时,它应该显示(“fans_only.html”)的内容,但在我的情况下,它仍然显示正在显示的内容的主要内容,我有2个网页;一个是给还没有点击“喜欢”的人的,另一个是给确实喜欢它的人的,只是在他们喜欢该页面后作为问候语。我试着用echo替换,但结果是一样的。相关问题:这段代码与他的代码有何不同?不是使用库,而是自己解析已签名的请求?我想我已经成功了,但有一个愚蠢的错误:在服务器上处理文件的人将index.html放在了登录页上,他正在读取html而不是php文件,对此给大家带来的不便,我深表歉意
<?php
require_once './facebooksdk/src/facebook.php';  //download at https://github.com/facebook/php-sdk/downloads

$facebook = new Facebook(array(
  'appId' => '174968482618267', // enter your App's ID
  'secret' => '5710d00a9b4acec8849d8adeb08c15c4', // enter your App's Secret
  'cookie' => true,
));
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Welcome Page</title>
</head>
<body>

<?php
// Did they like a page?
$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"])) {
// DISPLAY TO: those who didn't LIKE the page
    ?>


<!-- Didn't Like -->

You don't "Like" our page :-(

<!-- End of Didn't Like -->
    <?
} else {
// DISPLAY TO: those who LIKED the page
    ?>

<!-- Liked -->

Thanks for "Liking" our page!

<!-- End of Liked -->
<? } ?>

<!-- follow @svolinsky on twitter -->

</body>
</html>