Here is the example:
These guys get people to click on Like button (in Step 1) first bef
When a Facebook tab is loaded, the fb_sig_is_fan parameter is passed in specifying if the current user viewing the tab is a fan. Clicking on the Like button will trigger a reload of the tab content, resulting in an updated fb_sig_is_fan being passed in so the app can decide to show a different image.
http://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/
FB.Event.subscribe('edge.create', function(response) {
// do something with response.session
});
Actually information if user is page fan or not exists in signed request. Since you need firstly to decode signed request like it is here:
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
And after that access page liked variable:
$pageLiked = $data['page']['liked'];
Now FB is on the way of deprecating FBML so don't consider <fb:visible-to-connection>
as something that will work for a long base.
<fb:visible-to-connection>
put here code for users that like the page (no <fb:comments>)
</fb:visible-to-connection>
One can detect when a user clicks on like button using edge.create. Also if the user has already liked the page, it can detected using FQL Like Table.