检查用户是否喜欢Facebook页面

时间:2013-09-20 13:53:03

标签: javascript facebook sdk

我正在尝试检查用户是否喜欢我的页面,然后使用我的应用程序使用以下代码

<body onload="liked()">
<script type="text/javascript">
function liked() {
    FB.api("me/likes/2002200279160150349", function(response) {
        if (response.data.length == 1) {
            alert("page liked already");
        } else {
            alert("page is NOT liked ");
        }
    });
}
</script>

</body>

确定用户在另一个页面中进行了身份验证并正确登录

1 个答案:

答案 0 :(得分:4)

简单方法使用此方法

FB.api({
    method:     "pages.isFan",
    page_id:        my_page_id,
},  function(response) {
        console.log(response);
        if(response){
            alert('You Likey');
        } else {
            alert('You not Likey :(');
        }
    }
);

但是,此代码仅在用户为不理想的情况授予extended permission时才有效。

Here's another approach

简而言之,如果您打开“OAuth 2.0 for Canvas”高级选项,Facebook将发送$ _REQUEST ['signed_request']以及您的标签应用中请求的每个页面。如果您解析了signed_request,您可以获得有关该用户的一些信息,包括他们是否喜欢该页面。

function parsePageSignedRequest() {
    if (isset($_REQUEST['signed_request'])) {
      $encoded_sig = null;
      $payload = null;
      list($encoded_sig, $payload) = explode('.', $_REQUEST['signed_request'], 2);
      $sig = base64_decode(strtr($encoded_sig, '-_', '+/'));
      $data = json_decode(base64_decode(strtr($payload, '-_', '+/'), true));
      return $data;
    }
    return false;
  }
  if($signed_request = parsePageSignedRequest()) {
    if($signed_request->page->liked) {
      echo "This content is for Fans only!";
    } else {
      echo "Please click on the Like button to view this tab!";
    }
  }