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

Jquery 在用户点击后在网站上显示内容,jquery,facebook-like,Jquery,Facebook Like,我想在我的网站上隐藏一部分,直到读者喜欢我的网站 我知道这可以使用FB.Event.subscribe('edge.create')来完成,但我无法让它工作。有人能帮我吗?使用Facebook SDK,您可以做到: <?php require 'src/facebook.php'; // Create our Application instance (replace this with your appId and secret). $facebook = new Facebook(a

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


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

使用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上创建一个应用程序,并为其提供正确的参数,这本身就是一项工作!

以下是一个示例:

        <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>

...
window.fbAsyninit=函数(){
FB.init({
xfbml:true//解析xfbml
});
//这里有额外的初始化代码
FB.Event.subscribe('edge.create',function(){
$(“#隐藏内容”).show();
});
};
//异步加载SDK
(职能(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);
}(文件);

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

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

正如您所见,它使用了初始化时创建的
FB
对象,因此您必须为此创建一个facebook应用程序。

您能否发布代码以及您当前遇到的任何错误……我们很想帮助您,但我们需要更多信息-代码示例、错误等……这不是他想要的lp我们的朋友@Veronika,因为他们正在寻找一种在
like
事件后更改内容的方法,而不是您在这里给出的先决条件测试。您的解决方案需要在
like
操作后刷新页面。啊哈..我需要创建一个应用程序。上面的内容看起来像是针对facebook页面,而不是网站。是的,此代码需要一个应用程序才能工作。此外,此代码将在您的页面或您自己的网站的自定义选项卡上工作。如果您的页面上已经有一个“喜欢”按钮,并且您希望在单击后立即显示内容,则需要进行更多的工作,但如果用户已经喜欢您的facebook页面,则访问您的网站嗯,这肯定行得通。有没有办法做到这一点?我想做的事情表面上看起来很简单,但我已经努力了好几天。我只想让读者在我们的网站上点击喜欢的内容,然后显示隐藏的内容。上面的代码可以在facebook页面和网站上使用-但是需要刷新在类似的操作之后。这会起作用吗?你能在没有所有参数的情况下启动JS SDK吗?没有APP_ID?我想不会…但是…如果我错了-请…不要对自己保密;)是的,你可以:)对AppId的需要仅限于一些高级功能(通过示例发送请求…)你可能是对的,但是我不认为有必要测试facebooks文档:“你需要一个应用ID来初始化SDK,你可以从开发者的应用中获得。”摘自。当然。。。facebook文档是如此完整和详尽。。。正如我之前说过的:它是有效的。要订阅edge.create事件,无需获取appId。当然,拥有一个会更“干净”,但因为这里只需要一件事(catch edge.create event),所以我给出了最简单的答案。你可能是对的,但实现与文档相反的代码通常不是一个好主意。它现在可能会工作,但是当它停止工作时,只有程序员负责。