Вы можете декодировать подписанный запрос с помощью кода в этом разделе: Декодировать подписанный запрос без аутентификации
if (Request.Params["signed_request"] != null)
{
string payload = Request.Params["signed_request"].Split('.')[1];
var encoding = new UTF8Encoding();
var decodedJson = payload.Replace("=", string.Empty).Replace('-', '+').Replace('_', '/');
var base64JsonArray = Convert.FromBase64String(decodedJson.PadRight(decodedJson.Length + (4 - decodedJson.Length % 4) % 4, '='));
var json = encoding.GetString(base64JsonArray);
var o = JObject.Parse(json);
var lPid = Convert.ToString(o.SelectToken("page.id")).Replace("\"", "");
var lLiked = Convert.ToString(o.SelectToken("page.liked")).Replace("\"", "");
var lUserId= Convert.ToString(o.SelectToken("user_id")).Replace("\"", "");
}
Получить данные app_data должно быть легко, добавив
var lAppData = Convert.ToString(o.SelectToken("app_data")).Replace("\"", "");
Чтобы иметь app_data для вашего приложения с вкладками, вам нужно добавить его в URL перенаправления при получении разрешений.URL перенаправления должен выглядеть примерно так:
http://facebook.com/YOUR_PAGE?sk=app_YOUR_APP_ID&app_data=add,whatever,parameters,you,want,here
Я могу только догадываться, что причина, по которой вы получили эту ошибку, заключается в том, что вы просто вставили подписанный запрос в адресную строку вместо того, который использовалсяс помощью инструмента эха.Ошибка в том, что ваш подписанный запрос подписан вашим app_id, и вы пытаетесь использовать его с echo, у которого есть другой app_id.Но это всего лишь предположение:)
Мой основной язык - PHP, но, надеюсь, я смог помочь:)