1

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

<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>

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

4

1 回答 1

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不理想的情况下才有效。

这是另一种方法

简而言之,如果您打开“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!";
    }
  }
于 2013-09-20T14:49:14.927 回答