Auth Session始终为null

时间:2011-03-03 09:16:07

标签: facebook-c#-sdk

我使用了不同的方法,没有成功设置一个以前使用旧的4.x Facebook C#SDK的简单Iframe应用程序。我使用常规的.NET 4.0 Web应用程序,我不使用MVC。在我的FB应用程序配置中,我启用了所有新方法(如oAuth2),但禁用了标记为已弃用的选项。

对于我的页面的已登录用户粉丝,Authorizer会话始终为null。

Authorizer auth = new Authorizer(FacebookContext.Current.AppId, FacebookContext.Current.AppSecret, new HttpContextWrapper(Context));
auth.Perms = "user_about_me,user_birthday,user_location";

if (auth.Session != null && auth.Session.AccessToken != null)
    fbApp = new FacebookClient(auth.Session.AccessToken);           

if(auth.IsAuthorized())
        //show the app

可能我错过了一些愚蠢的东西,但我无法让它发挥作用。我认为是与cookie相关的东西,我的SDK 4.x web.config的不同之处在于facebookSettings中不支持cookieSupport =“false”... 在此先感谢能帮助我的人:) 乔

1 个答案:

答案 0 :(得分:0)

在版本5中,如果cookie存在于请求中,则使用cookie,否则将查找其他请求参数,例如signed_request。您不应该使用带有画布应用程序的cookie,因为您将遇到某些浏览器的跨域问题。

确保您启用了Canvas的POST。

不使用Authorizer,而是尝试使用CanvasAuthorizer类(5.0.3)或FacebookCanvasAuthorizer类(最新源代码)。

像这样实例化:

var auth = new CanvasAuthorizer { Perms = "user_about_me,user_birthday,user_location" };

您不需要将appId或appSecret传递给构造函数,因为它将从您的Web.config部分获取。