C# Facebook在C中扩展权限#
我正在开发一个Facebook应用程序(使用ASP.NET C#和Nathan Totten的Facebook C#SDK),并尝试访问扩展权限。 我在localhost上试过(在facebook上有一个现有的应用程序),每个人都能工作。但当我试图直接在facebook上使用它时,我会得到一个空白页面(我仍然在facebook上保持连接) 这是我的密码: 第页/aspx:C# Facebook在C中扩展权限#,c#,asp.net,facebook,permissions,facebook-oauth,C#,Asp.net,Facebook,Permissions,Facebook Oauth,我正在开发一个Facebook应用程序(使用ASP.NET C#和Nathan Totten的Facebook C#SDK),并尝试访问扩展权限。 我在localhost上试过(在facebook上有一个现有的应用程序),每个人都能工作。但当我试图直接在facebook上使用它时,我会得到一个空白页面(我仍然在facebook上保持连接) 这是我的密码: 第页/aspx: protected void btn_ask_question_Click(object sender, EventArgs
protected void btn_ask_question_Click(object sender, EventArgs e)
{
if (ControllerAccess.testUserConnected())
{
if (txt_ask_question.InnerText != "")
{
Dictionary<string, object> action = new Dictionary<string,object>();
action.Add("action", "askQuestion");
action.Add("message", txt_ask_question.InnerText);
action.Add("idTheme", ddl_choose_question_category.SelectedValue);
HttpContext.Current.Session["ActionToDo"] = action;
String s = Controller.GetExtendedPermission2(this, ControllerAccess.getScopeByAction("askQuestion"));
try{
Response.Redirect(s, false);
} catch(Exception ex)
{
}
}
}
}
当我使用这一行时出现空白页:page.Response.Redirect(OAuthDialogAbsoluteURL,false)
但是我记录了我的所有步骤,并且我的OAuthDialogAbsoluteURL是正确的:
当我手动将它输入地址栏时,一切正常
您是否知道本地版本和发布版本之间的区别,或者为什么重定向不起作用?也许facebook会阻止一些请求
谢谢。如果要使用应用程序测试不同的环境,请确保设置指向托管版本。出于安全原因,Facebook不允许您授权未连接到您的应用程序的网站的用户
通常,您会看到类似“URL不属于应用程序”或类似的错误。我最终使用Chrome调试器解决了问题。错误是:
Refused to display document because display forbidden by X-Frame-Options
我使用Javascript来修复它,并按如下方式重定向:
Response.Write("<script>");
Response.Write("window.open('"+redirect+"','_top')");
Response.Write("</script>");
Response.Write(“”);
Response.Write(“window.open”(“+redirect+”,“\u top”);
回答。写(“”);
希望它能帮助一些人。这就是为什么我要显示地址。我认为这是正确的,facebook开发者页面证实这可能是一个好方法。所以我想知道我是否做错了什么:)。我在catch方法中有一条日志消息,但没有记录任何内容,因此它不会进入catch..:/
Refused to display document because display forbidden by X-Frame-Options
Response.Write("<script>");
Response.Write("window.open('"+redirect+"','_top')");
Response.Write("</script>");