我使用了不同的方法,没有成功设置一个以前使用旧的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”... 在此先感谢能帮助我的人:) 乔
答案 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部分获取。