Facebook Javascript-SDK检查用户是否喜欢某个页面的方式

时间:2011-11-08 14:56:14

标签: javascript jquery facebook facebook-javascript-sdk

我创建了一个主要使用jQuery构建的Facebook应用程序。我现在需要检查用户是否喜欢某个特定页面。但是,这需要添加到jQuery click()函数中(因此,如果用户单击该按钮,它将给出一个对话框,说明他们无法继续而不喜欢页面)并有效地阻止脚本运行。

我的整个应用程序都使用jQuery,它不是不同的页面,所以我真的需要jQuery和Facebook JSDK之间的交互,但我不确定集成是如何工作的。有没有人有资源让我看看?或者也许是一个脚本:)

2 个答案:

答案 0 :(得分:4)

使用它:

$(document).ready(function() {

    window.fbAsyncInit = function() {
        FB.init({
          appId      : 'YOUR_APP_ID', // App ID
          channelURL : '//www.YOUR_DOMAIN.com/channel', // Channel File URL
          status     : true, // check login status
          cookie     : true, // enable cookies to allow the server to access the session
          oauth      : true, // enable OAuth 2.0
          xfbml      : true  // parse XFBML
        });

        FB.getLoginStatus(function(response) {
              if (response.authResponse) {
                // logged in and connected user, someone you know
                 var user_id = response.authResponse.userID;
                  var page_id = "YOUR_PAGE_ID";
                  var fql_query = "SELECT uid FROM page_fan WHERE page_id = "+page_id+"and uid="+user_id;
                  var the_query = FB.Data.query(fql_query);

                  the_query.wait(function(rows) {

                      if (rows.length == 1 && rows[0].uid == user_id) {
                          //user likes the page
                          //do your stuff here
                      } else {
                        // user doesn't like our page yet                             
                      }
                  });
              } else {
                // no user session available, someone not known, not logged into fb                  
              }
          });
      };

      // 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));
});

在你的html / jsp / php中,添加以下行:

<div id="fb-root"></div>

频道文件不是强制性的,但是可取的。查看fb docs了解更多信息。

答案 1 :(得分:0)

对于这个假设,我不建议你使用javascript作为它的客户端代码,并且可以被所有人更改。通过您的服务器端代码执行此操作