Bob*_*ski 6 app-data facebook-c#-sdk
如何从Facebook webforms应用程序获取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选项卡应用程序获取Querystring
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
另外这个帖子是有帮助
只需要在Facebook应用程序设置中添加直接页面.www.site.com/deafult.aspx不是www.site.com
小智 3
在 facebook 发布的 JSON 数组中,顶级键之一是“app_data”(如果已指定)。所以你可以像你对“喜欢”所做的那样,但不是“page.liked”,它只是“app_data”(而不是布尔值)
| 归档时间: |
|
| 查看次数: |
4133 次 |
| 最近记录: |