为什么我的facebook iframe应用程序显示空画布

时间:2012-01-17 08:28:16

标签: c# asp.net facebook fbml fbconnect

我创建了一个带有iframe的asp.net facebook应用程序,它用于在网址http://apps.facebook.com/myappname上正确显示,直到我放置代码以在页面上添加权限。我使用facebook.dll来使用facebook.Components.FacebookService类并使用此类检查身份验证令牌等。自从我完成此操作后,应用程序画布页面显示为空。但是,当我在浏览器位置栏中输入实际站点URL时,我将其用作画布URL(例如http://myappname.mydomainname.com),我会看到应用程序请求权限的提示。有人可以指导我做错了吗。

   _fbService.ApplicationKey = FACEBOOK_API_KEY;
        _fbService.Secret = FACEBOOK_SECRET;
        _fbService.IsDesktopApplication = false;
        string sessionKey = Session["Facebook_session_key"] as String;
        string userId = Session["Facebook_userId"] as String;
        // When the user uses the Facebook login page, the redirect back here
        // will will have the auth_token in the query params
        authToken = Request.QueryString["auth_token"];
        // We have already established a session on behalf of this user
        if (!String.IsNullOrEmpty(sessionKey) && !String.IsNullOrEmpty(userId))
        {

            _fbService.SessionKey = sessionKey;
            _fbService.uid = Convert.ToInt64(userId);
        }
            // This will be executed when Facebook login redirects to our page        

        else if (!String.IsNullOrEmpty(authToken))
        {
            try
            {
                _fbService.CreateSession(authToken);
                Session["Facebook_session_key"] = _fbService.SessionKey;
                Session["Facebook_userId"] = _fbService.uid;
                Session["Facebook_session_expires"] = _fbService.SessionExpires;

            }
            catch (Exception)
            {

                Response.Redirect(@"http://www.Facebook.com/login.php?api_key=" + _fbService.ApplicationKey + @"&v=1.0\");
            }
        }
        // Need to login        
        else
        {
            Response.Redirect(@"http://www.Facebook.com/login.php?api_key=" + _fbService.ApplicationKey + @"&v=1.0\");
        }

        facebook.Schema.user usr = _fbService.users.getInfo();
        //User usr = _fbService.GetUserInfo();
      //  string t = string.Format("User Name:{0}, Sex:{1}, Location: {2}", usr.first_name, usr.sex, usr.current_location.city);
        GetUsersFriendsList();
        // GetUserName(usr);
        // SetControlVisibility(_fbService.uid.ToString());
    }

1 个答案:

答案 0 :(得分:2)

有了这些问题,最好尽早确定您所遇到的问题是由于客户端问题,即JavaScript问题还是服务器端问题。

让我们从客户端故障排除开始:

  • 打开浏览器的开发者控制台(例如,在PC上的Chrome中使用CTRL + SHFT + I)
  • 根据下面的截图,您是否看到红色文字中有任何错误?如果是的话,你能告诉我们他们的意思吗?: Browser console with error

你说一旦开始使用权限就开始出现问题 - 使用Facebook API,这些主要是使用JavaScript API请求客户端,所以我认为最好从那里开始作为可能的根区域问题。

让我们知道您的发现,我们将从那里进行排查!