【问题标题】:Know if facebook like button is clicked知道是否点击了 facebook like 按钮
【发布时间】:2012-01-30 14:25:49
【问题描述】:

我需要知道我页面的访问者是否点击了“赞”按钮。 使用此代码:

<fb:like href="[my_url]" layout="button_count" show_faces="false" width="20" font=""></fb:like>

并包括来自 facebook 的脚本。 我知道我可以用这个:

FB.Event.subscribe('edge.create', function(response) {
    //if the user click on Like
}

但是如果用户已经喜欢了我的网站,我怎么知道呢? 我不想让他再点赞再点赞,来举办那个活动。

【问题讨论】:

    标签: javascript facebook


    【解决方案1】:

    http://unbound-media.com/facebook/how-to-tell-if-a-facebook-user-likes-your-facebook-application/

    FB.Event.subscribe('auth.sessionChange', function(response) {
            if(response.session){
                //check to see if user is a fan of the page
                var query = FB.Data.query( 'select page_id from page_fan where uid='+response.session.uid+' and page_id ='+PAGE_ID);
                query.wait( function(rows) {
                    if(rows.length){
                        //user already likes your page
                    }else{
                        //user has not yet liked your page
                    }
                });
            }else{
                //user has not yet logged in
            }
        });
    

    更新:

    我个人使用

    <iframe src="http://www.facebook.com/plugins/like.php?app_id=...&amp;send=false&amp;layout=button_count&amp;width=50&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font=arial&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:50px; height:21px;" allowTransparency="true"></iframe>
    

    我从这里得到的:http://developers.facebook.com/docs/guides/web/

    不能从它所在的页面再次点击

    【讨论】:

    • 这不要求他们通过您的应用程序进行身份验证吗?
    • 看起来页面也可以这样做
    • 看起来这个事件从来没有运行过。我没有应用程序,只是一个带有点赞按钮的普通网页。
    【解决方案2】:

    事实上是有可能的:

    FB.login(function(response) {
      if (response.status == 'connected') {
        FB.api('me/likes/' +fb_page_id_or_fb_user_id, function(likes) {
          if (likes.data.length > 0) {
            alert('yaay, page liked');
          }
        });
      } else {
        alert('unable to connect to fb');
      }
    }, {scope: 'user_likes'});
    

    【讨论】:

      【解决方案3】:

      将like按钮放在另一个元素中并在点击时添加到它

      <div onclick="doSomething();">
          <fb:like href="[my_url]" layout="button_count" show_faces="false" width="20" font="">  </fb:like>
      </div>
      

      【讨论】:

      • 不是一个好主意。你测试了吗?
      • 将事件绑定到like-button的click没有问题,只需使用FB.Event.subscribe("edge.create",function() {}) ;问题是要知道按钮是否已经被点击。
      【解决方案4】:

      只是在这里有一个被接受的答案。

      我认为这是不可能的,我最终放弃了。

      我认为 Facebook 不希望人们知道“赞”按钮是否已被点击,因为 Facebook 不希望任何人强​​迫人们点赞。

      如果有人得到更好的答案,请告诉我,但现在,我认为正确的答案是,不,不可能。

      【讨论】:

      • 不,实际上有可能,请在下面查看我的答案。
      • 当它启动时你可以使用 cookie FB.Event.subscribe('edge.create', function(response) { //if the user click on Like }
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      • 2017-11-17
      • 1970-01-01
      相关资源
      最近更新 更多