Javascript检查用户是否已经喜欢facebook页面

Javascript check if user already liked facebook page or not

本文关键字:喜欢 facebook 页面 检查 用户 是否 Javascript      更新时间:2023-09-26

在我的网站中,当访问者访问我的网站时,如果他们还没有喜欢我的facebook页面,我想显示Iframe like框。我在web和stackoverflow中看到过许多代码,但它似乎不能很好地工作。下面是我的javascript代码:

$(document).ready(function(){
  FB.init({
    appId  : 'IDAPP',
    status : true,
    cookie : true,
    xfbml  : true
  });
  FB.getLoginStatus(function(response) {
    if (response.status == 'connected') {
        var user_id = response.authResponse.userID;
        var page_id = "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) {
          alert(rows);
            if (rows.length == 1 && rows[0].uid == user_id) {
                alert("like");
            } else {
                alert("not like");
            }
        });
    } else if (response.status === 'not_authorized') {
       alert("not authorized");
    } else {
       alert("not login");
    }
  });
});

请求与登录或未登录或not_authorize它工作良好,但当检查页面像或注意,它不运行任何东西

FQL已弃用,您需要授权用户具有user_likes权限-之后,它只是对/me/likes端点的调用。你不会得到像门控这样的许可,因为这是不允许的。而且你也不会批准"请点赞我的页面"覆盖/iframes:) -因为用户不会以任何方式从覆盖中受益,这只会让人讨厌。

只有一个可能的方法:

  • 订阅类似事件:https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/
  • 在事件回调中,存储一个cookie,以便下次用户访问你的页面时,你不再显示overlay/iframe

问题是,你不知道他们喜欢或不喜欢什么。用户可以清除他的cookie,所以你永远无法确定。我的建议是:不要用它来惹恼你的用户。