Вам не нужны никакие дополнительные разрешения или авторизация.Информация «Понравилось» доступна в подписанном запросе согласно этому сообщению в блоге Facebook. Она публикуется каждый раз, когда пользователь нажимает на ваше приложение iFrame на вкладке страницы.
Я думаю, что пропущенный шаг - это расшифровка подписанного запроса (с использованием секрета вашего приложения Facebook).
Вы можете использовать метод FacebookSignedRequest.Parse
в SDK Facebook C # для анализаподписанный запрос (приложив к нему секретную заявку Facebook).Сделав это, вы можете извлечь флаг «Мне нравится» из объекта Page JSON следующим образом:
var DecodedSignedRequest = FacebookSignedRequest.Parse(FacebookContext.Current.AppSecret, FacebookWebContext.Current.SignedRequest.Data);
dynamic SignedRequestData = DecodedSignedRequest.Data;
var RawRequestData = (IDictionary<string, object>)SignedRequestData;
if (RawRequestData.ContainsKey("page") == true)
{
Facebook.JsonObject RawPageData = (Facebook.JsonObject)RawRequestData["page"];
if (RawPageData.ContainsKey("id") == true)
currentFacebookPageID = (string)RawPageData["id"];
if (RawPageData.ContainsKey("liked") == true)
currentFacebookPageLiked = (bool)RawPageData["liked"];
}
Или вы можете, согласно моему другому ответу , использовать форму singed_requestпеременная, которая публикуется в вашем приложении IFrame на Facebook.
Надеюсь, это поможет.