1

このコードブロックは機能していましたが、もう機能していません...

Index.php

<!doctype html>
<?php
require 'php-sdk/src/facebook.php';
$facebook = new Facebook(array(
            'appId' => '453976824647366',
            'secret' => 'fe86f3b0b34b3ed6eXXXXXX',
            'cookie' => true,
        ));

$signedRequest = $facebook->getSignedRequest();
$liked = $signedRequest["page"]["liked"];

        if ($liked) {
            header('Location:youlike.php');
        } else {
            echo "you don't like";
        }
?>
<html lang="en" xmlns:fb="https://www.facebook.com/2008/fbml">
    <head>


    </head>
    <body>

    </body>

</html>

youlike.php

You like!

常に「気に入らない」と表示されますが、youlike.phpには表示されないようです。

いくつかの助けをもう一度いただければ幸いです!

どうも

4

2 に答える 2

2

これを試して:

<!doctype html>
<?php

if (!empty($_POST['signed_request'])) {
    list($sig, $payload) = explode('.', $_POST['signed_request'], 2);
    $decoded = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
    $liked = $decoded["page"]["liked"];
}

if ($liked) {
    header('Location:youlike.php');
    exit;
}
else {
      echo "you don't like";
}
?>
于 2012-09-10T09:20:09.107 に答える
0

iframeを使用しているため、一番上のフレームでリダイレクトを実行する必要があります。

このJavaScriptを試してください-

top.location.href = "youlike.php";

phpを使用すると、次のようなコードを簡単にエコーアウトできます-

echo '<script type="javascript">';
echo 'top.location.href = "'.$youlike.'";';
echo '</script>';
exit();

事前/投稿のようなページの複雑さによっては、すべてのコンテンツを1つのページに表示し、ユーザーがそのページを「気に入った」場合にのみその一部を表示したい場合があります。

if ($liked) {
  // place like post page HTML here
} else {
  // place like pre page HTML here
}
于 2012-09-07T16:11:56.250 に答える