就像新时间线品牌页面上的门

时间:2012-02-29 23:30:06

标签: php facebook tabs facebook-like

嘿伙计我一直对欢迎页面和产品页面,Q& A页面等品牌页面都有类似的门。我使用的代码如下

<? require 'facebook.php';
$app_id = "[MY-APP-ID-HERE]";
$app_secret = "[MY-APP-SECRET-HERE]";
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));

$signed_request = $facebook->getSignedRequest();

$like_status = $signed_request["page"]["liked"];

if ($like_status) {

//You have liked the page

} else {
//You need to like the page
}

?>

现在使用新的时间线,这个相似的图层不再像以前那样工作。如果您不喜欢该页面,则会显示相似的部分,然后当您单击顶部时,它会重定向到if / else语句的like部分,但现在使用时间线则没有。

如果您可以通过新的时间线布局来帮助您实现这一目标,那么这些页面将非常有用。

4 个答案:

答案 0 :(得分:3)

这是我昨天把它扔在一起的解决方案。它由Like Button插件和Javascript SDK组成。

Facebook JS API reference

首先,您需要创建一个Like Button插件(http://developers.facebook.com/docs/reference/plugins/like/),您将其添加到选项卡中。您将不再希望用户单击您的Page的Like按钮...只有Like按钮插件(巨大差异)

其次,使用Javascript SDK,您需要“监听”Like Button插件上的点击。这是通过SDK API FB.Event.subscribe调用侦听'edge.create'来实现的。

Facebook JS API reference event subscribe

示例代码:

    FB.Event.subscribe('edge.create',
        function(response) {
        document.location = 'fanrevealed.php';
        });
    };

以上示例将用户重定向到“显示”标签。

如果您需要帮助,请随时在Twitter上打我。

@jeremyhilton

答案 1 :(得分:2)

您可以订阅指定的Facebook Bug :) Facebook Bug 228778937218386

作为一个选项/解决方法,你可以使用带有Fan Gating Plus +的徒步选项卡生成器来包含使用FB.Event.subscribe('edge.create')的Like按钮,以便在点击之后淡出非粉丝内容: Facebook Hike Social App Page

更新:错误由Facebook修复!

答案 2 :(得分:0)

“旧”Like按钮导致页面刷新,这意味着服务器端检查将完成它的工作。新的Like按钮不会导致刷新,我没有看到任何提及JS回调,而不是我知道它将如何运行,因为它在另一个JS沙箱中运行。

答案 3 :(得分:0)

同样的门仍然有用。唯一的问题是页面没有刷新以获取您的粉丝唯一的内容。如果你点击它然后手动刷新它仍然可以工作。