如何从 Facebook 网络表单应用程序获取 app_data 查询字符串?我希望能够在查询字符串中发送一些信息,以便我可以在我的应用程序上显示不同的主屏幕。该应用程序位于页面选项卡中。
示例: http ://www.facebook.com/pages/APPNAME/157772164271503?sk=app_230501256972470&app_data=Page.aspx
如何从 app_data 获取“Page.aspx”?我需要它将用户重定向到与 Default.aspx 不同的页面
我找到了解决方案。 使用 asp.net 从 facebook 标签应用程序获取查询字符串
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