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 に答える