我正在開發Facebook應用程序(使用ASP.NET C#和Nathan Totten的Facebook C#SDK)並嘗試訪問擴展權限。 我嘗試在本地主機(與Facebook中的現有應用程序),並且每個人都工作。但是當我嘗試直接在Facebook上使用它時,我獲得了一個空白頁面(我仍然在facebook上連接)。C#中的Facebook擴展權限#
這是我的代碼:
頁/ ASPX:
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_Load():
if (HttpContext.Current.Session["ActionToDo"] != null)
{
Dictionary<string, object> action = HttpContext.Current.Session["ActionToDo"] as Dictionary<string, object>;
String s = action["action"].ToString();
switch (s)
{
case "askQuestion":
Guid idTheme;
Boolean themeExists = Guid.TryParse(action["idTheme"].ToString(), out idTheme);
if(themeExists)
{
askQuestion(action["message"].ToString(), idTheme);
lbl_errors.Text = "Votre question a bien été posée";
}
break;
default:
break;
}
HttpContext.Current.Session["ActionToDo"] = null;
}
在Control.cs:
public static string GetCustomOAuthDialogParameters(string AppID, string RedirectURI, string Scope, string State)
{
string CustomParameters = "?client_id=" + AppID + "&redirect_uri=" + RedirectURI + "&scope=" + Scope + "&state=" + State;
return CustomParameters;
}
public static void GetExtendedPermission(Page page, String scope)
{
ecritureFichier("GetExtendedPermission");
Label lbl_errors = page.Form.FindControl("lbl_errors") as Label;
string OAuthDialogAbsoluteURL = "";
try
{
string OAuthDialogURL = "https://www.facebook.com/dialog/oauth";
string PageLocation = GetCurrentPageFacebookPublishedPath(page.Request); //The redirect page (eg: https://apps.facebook.com/democsharpsdk/TestsExtendedPermission.aspx)
string UniqueReferenceCode = Guid.NewGuid().ToString();
OAuthDialogAbsoluteURL = OAuthDialogURL + GetCustomOAuthDialogParameters(AppID, PageLocation, scope, UniqueReferenceCode);
page.Response.Redirect(OAuthDialogAbsoluteURL, false);
}
catch (Exception exp)
{
lbl_errors.Text += "Erreur Catchée via ASP.NET : " + exp.Message;
}
}
的當我使用這個l時出現空白頁面ine:page.Response.Redirect(OAuthDialogAbsoluteURL,false);
但我登錄我的腳步,我的OAuthDialogAbsoluteURL是正確的:
當我手動輸入到地址欄中,一切正常。
您對本地版本和已發佈版本之間的區別以及重定向不起作用有什麼想法嗎?也許Facebook阻止一些請求?
謝謝。
這就是爲什麼我顯示地址。我認爲這是正確的,Facebook的開發頁面確認這可能是最好的方法。所以我想知道如果我做錯了什麼:)。我有一個捕獲方法的日誌消息,但沒有記錄,所以它不會進入catch ..:/ – algelos