Как получить строку запроса app_data из приложения веб-форм Facebook?
Я хочу иметь возможность отправлять некоторую информацию в строке запроса, чтобы я мог отображать другой домашний экран в моем приложении.
Приложение находится на вкладке страницы.
Пример:
http://www.facebook.com/pages/APPNAME/157772164271503?sk=app_230501256972470&app_data=Page.aspx
Как мне получить "Page.aspx" из app_data?
Мне нужно, чтобы перенаправить пользователя на другую страницу из Default.aspx
Я нашел решение.
Получить Querystring из приложения на вкладке Facebook, используя 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;
}
}
}
Также этот пост был полезен
просто убедитесь, что добавили прямую страницу в настройках приложения Facebook, например. www.site.com/deafult.aspx не www.site.com