We've built a Facebook Page Tab application with a Like Gate. We've done this countless times before and there's nothing unusual about this application in that regard.
Within our ASP.Net 4.0 Web Forms application, we used the Facebook C# SDK, with the latest version (6.4.2) pulled directly from NuGet and the following C# code:
public static bool IsPageLiked(string appId,
string appSecret, string signedRequest)
{
var fb = new FacebookClient { AppId = appId };
dynamic req = fb.ParseSignedRequest(appSecret, signedRequest);
return req.page.liked;
}
We've used this code several times before and we've never had any problems with it. The app and its Like Gate are both working nicely on an Unpublished Page — so that only Page Admins who are in the appropriate App Roles can see the app.
We are seeing an intermittent error, though. This only affects some users, but those users are seeing the message reliably whenever they Like or Unlike the Page hosting the Tab app:
This content is no longer available
The content you requested cannot be displayed right now. It may be temporarily unavailable, the link you clicked on may have expired, or you may not have permission to view this page.
That error message is what you'd get if you try to access something to which you don't have permission. The users are still Page Admins, though, so their permission to view the App and the Page is not changing.
Google suggests that this is an error at Facebook's end that no-one has really found a satisfactory solution to. Oddly enough, our client isn't terribly impressed with that answer.
Does anyone have anything more-constructive they can offer? Please? :)