[UPDATE: June 3, 2008] Problem solved.
I’ve been playing with a Facebook Application started using my Facebook Developer’s Toolkit Starter Kit (for v1.6) and I’m seeing an "Invalid Parameter" error which occurs if the application is left idle in the browser then an attempt is made to interact with the app and the session times out. The error is as follows:
Server Error in '/FacebookASPNET' Application.
Invalid parameter
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: Facebook.Exceptions.FacebookException: Invalid parameter
Source Error:
Line 32: else if (!String.IsNullOrEmpty(authToken))
Line 33: {
Line 34: _fbService.CreateSession(authToken);
Line 35: Session["facebook_session_key"] = _fbService.SessionKey;
Line 36: Session["facebook_userId"] = _fbService.UserId; |
Source File: e:\web\nnn\htdocs\FacebookASPNET\Default.aspx.cs Line: 34
Stack Trace:
[FacebookException: Invalid parameter]
Facebook.API.FacebookAPI.ErrorCheck(XmlDocument doc) +900
Facebook.API.FacebookAPI.LoadXMLDocument(String rawXML) +127
Facebook.API.FacebookAPI.CreateSession() +92
Facebook.Components.FacebookService.CreateSession(...) +37
_Default.Page_Load(...) in Default.aspx.cs:34
System.Web.Util.CalliHelper.EventArgFunctionCaller(...) +15
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(...) +33
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Page.ProcessRequestMain(...) +1436
|
Version Information: Microsoft .NET Framework Version:2.0.50727.1433; ASP.NET Version:2.0.50727.1433
The problem is discussed on the Facebook Developer’s Wiki here with the solution being to add the following code to allow for an IE issue regarding pages loaded in a frame from a different domain:
protected override void OnPreRender(EventArgs e)
{
Response.AppendHeader("P3P", "CP=\"CAO PSA OUR\"");
base.OnPreRender(e);
}
I’ve gone ahead and added this to my application but I’m still seeing this error. There are a number of discussions on the CodePlex project pages for the Toolkit related to this error message but AFAICT, it doesn’t appear this has been resolved at least not for IFRAME applications. In fact, the last message in this thread on the subject a user mentions switching to Facebook.NET which apparently doesn’t exhibit the same behavior. I haven’t had a chance to debug this further as I’m swamped with other work right now however, I thought it might be worth posting about to start gathering information about it. I’ll probably throw together a quick test using Facebook.NET for comparison and see what happens.
Anyway, have you run into this problem? Did the OnPreRender solution work? I’d like to update the starter kit as necessary to resolve this issue so if you have any details please let me know. Thanks!