aplicativo de formulários da web @Facebook obtém app_data querystring

Como obtenho a string de consulta app_data de um aplicativo de formulários da web do Facebook? Quero poder enviar algumas informações na sequência de consultas para que eu possa exibir diferentes telas iniciais no meu aplicativo. O aplicativo está sentado em uma guia da página.

Exemplo:http: //www.facebook.com/pages/APPNAME/157772164271503? sk = app_230501256972470 & app_data = Page.aspx

Como obtenho "Page.aspx" em app_data? Preciso redirecionar o usuário para uma página diferente de Default.aspx

Encontrei a solução. Obtenha o Querystring do aplicativo da guia do facebook usando asp.net

using Newtonsoft.Json.Linq;
using System.Text;

public partial class Page_Default : System.Web.UI.Page
{
    protected string output = "";

    protected void Page_Load(object sender, EventArgs e)
    {
        output = "Whole thing:" +Request.Form["signed_request"];
        output += "Second part:" + Request.Form["signed_request"].Split('.')[1];

            try
            {
                string payload = Request.Form["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);

                output += "Decoded:" + json;

                bool liked = (bool)o.SelectToken("page.liked");

                output += "Liked:" + liked.ToString();
            }
            catch (Exception ex)
            {
                output += "Extract failed: " + ex.Message;
            }
    }
}

Além dissoesta postage foi útil

basta ter a certeza de adicionar a página direta nas configurações do aplicativo do Facebook, ex. www.site.com/deafult.aspx não www.site.com

questionAnswers(2)

yourAnswerToTheQuestion