检查用户是否喜欢

时间:2014-05-30 10:23:32

标签: javascript jquery facebook facebook-oauth

我有一个在Facebook以外工作的应用程序。我需要用户在浏览之前喜欢2个不同的Facebook页面。

我已经有了一个函数来知道用户是否点击了(当然也喜欢)那些页面。问题是用户是否已经喜欢这些页面。所以,如果用户不喜欢。当他点击2个喜欢的按钮我就会知道。

我将在数据库中添加一个like_both = 1,从那时起,我将始终让客户端跳过该步骤。这不是一个好习惯,因为如果用户删除了类似的东西,他将跳过它,因为我在数据库中验证它。

这是我使用的代码:

  window.fbAsyncInit = function() {
        FB.init({
            appId: '1426818840916389',
            status: true,
            cookie: true,
            xfbml: true,
            oauth: true
        });

        FB.Event.subscribe('edge.create', function(response) {
           //Some ajax function.
        });

    });

我可以通过这个来了解用户是否点击了。但是如何知道他们是否已经点击而没有要求权限。

此外,我没有时间要求提交评审意见(这是否真的有必要?)。

我也尝试过这个:

FB.login(function(response) {

    if (response) {
            console.log(response);
          var user_id = '100000246250649';

          var page_id = "40796308305"; //coca cola
          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) {
                   alert(' LIKE');
                  //here you could also do some ajax and get the content for a "liker" instead of simply showing a hidden div in the page.

              } else {
                 alert('DO NOT LIKE');//and here you could get the content for a non liker in ajax...
              }
          });


      } else {

        // user is not logged in
      }

响应'我得到它的唯一:

  

对象{authResponse:对象,状态:"已连接"}

即使我定义了UID和PAGE_ID,查询也不会运行,我得到的错误根本没有响应。

也许我没有选择,只要我搜索它几乎是不可能的,但也许一些聪明的头脑能够帮助我。

1 个答案:

答案 0 :(得分:0)

您可以使用图表API查询用户喜欢的所有网页:

FB.api("/me/likes",function (response) {});

请注意,要执行此操作,您需要获得user_likes权限。

https://developers.facebook.com/docs/graph-api/reference/v2.0/user/likes https://developers.facebook.com/docs/facebook-login/permissions/v2.0