用户点击LIKE后在网站上显示内容

时间:2011-12-05 13:50:41

标签: jquery facebook-like

我想隐藏我网站上的一部分,直到读者喜欢我的网站。

我知道这可以使用FB.Event.subscribe('edge.create')完成,但我无法让它工作。有人可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

使用Facebook SDK,您可以这样做:

<?php
require 'src/facebook.php';

// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
 'appId' => 'xxxxxxxxxxx',
 'secret' => 'xxxxxxxxxxx',
));

$user = $facebook->getUser();

if ($user) {
try {
    $likes = $facebook->api("/me/likes/YOUR PAGE ID");
    if( !empty($likes['data']) )
    {
        ?>
        <p>Your fan-only content</p>
        <?php
    }
    else
    {
        ?>
    <p>Content for non-fans (if any)</p>
        <?php
    }
} catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
    }
}

if ($user) {
    $logoutUrl = $facebook->getLogoutUrl();
} 
else {
    $loginUrl = $facebook->getLoginUrl(array(
    'scope' => 'user_likes'
));
}
?>

您需要在Facebook上创建一个应用程序,并为其提供正确的参数,这本身就是一项工作!

答案 1 :(得分:0)

您可以使用此代码捕获类似的事件:

FB.Event.subscribe('edge.create',
    function(response) {
        alert('You liked the URL: ' + response);
    }
);

正如您所看到的那样,它会使用在初始化Facebook JS SDK时创建的FB对象,因此必须为此创建一个Facebook应用。

答案 2 :(得分:-1)

以下是一个例子:

        <div id="fb-root"></div>
        <fb:like send="false" layout="button_count" width="100" show_faces="false"></fb:like>
        <div id="hidden_content" style="display:none;">...</div>
        <script type="text/javascript">
              window.fbAsyncInit = function() {
                FB.init({
                  xfbml      : true  // parse XFBML
                });

                // Additional initialization code here
                   FB.Event.subscribe('edge.create', function() { 
                      $('#hidden_content').show();
                  });
             };

          // Load the SDK Asynchronously
          (function(d){
             var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
             js = d.createElement('script'); js.id = id; js.async = true;
             js.src = "//connect.facebook.net/en_US/all.js";
             d.getElementsByTagName('head')[0].appendChild(js);
           }(document));
        </script>