Skip to content

Instantly share code, notes, and snippets.

@cherenkov
Created November 15, 2012 18:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cherenkov/4080396 to your computer and use it in GitHub Desktop.
Save cherenkov/4080396 to your computer and use it in GitHub Desktop.
facebook. タブページのアプリのファンゲート
<?php
$signed_request = $facebook->getSignedRequest();
// pr($signed_request);
if (isset($signed_request['page']) && isset($signed_request['page']['liked'])) {
$pageLiked = $signed_request['page']['liked'];
} else {
if (isset($signed_request['user_id']) && $signed_request['user_id']) {
// ここでリロードさせることによって、次のアクセスで$signed_request['page']['liked']が取れる。
echo '<script>window.location = window.location;</script>';
} else {
$pageLiked = false;
}
// 通常のアクセスは $signed_request['page']['liked'] が付いてページのいいねを判別できるが、
// すでに権限もあっていいねした状態で、権限を消してアプリを開き、権限を付けて再びアプリにリダイレクトされると、
// いいねしてるのにファンゲートが出る。
// その理由は権限後のリダイレクトには $signed_request['page']['liked'] が付かないため。
// だが代わりに$signed_request['user_id']が付くので、これを利用すればファンゲートを実装できる。
}
if (!$pageLiked) {
echo <<<EOT
<div id="popup_like_container">
<img src="/images/fangate.png" alt="">
</div>
<div id="fangate_overlay"></div>
EOT;
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment