从Facebook C#SDK的V5迁移到V6

我正在尝试从V5.3.2迁移到SDK的V6。 我有一个ASP.NET 4.0 Canvas应用程序。 我注意到现在没有更多的facebook.web.dll(我之前使用过),并且发现了这个信息:

>删除Facebook.Web.dll和Facebook.Web.Mvc.dll从v6开始,我们正在弃用Facebook.Web.dll和Facebook.Web.Mvc.dll,将不再提供它。 …从v6开始,您必须使用Facebook Javascript SDK获取访问令牌,并使用安全的https连接将其传递给服务器,或使用Facebook OAuth登录对话框。 解码已签名的请求(ParseSignedRequest / TryParseSignedRequest)已转移到FacebookClient。

var fb = new FacebookClient(); dynamic signedRequest = fb.ParseSignedRequest("app_secret", Request.Params["signed_request"]); 

<<<<( http://blog.prabir.me/post/Facebook-CSharp-SDK-Glimpse-into-the-Future.aspx )所以这一切都很好。 以前,我的代码背后有这个:

 protected void Page_Load(object sender, EventArgs e) { var auth = new CanvasAuthorizer { Permissions = new[] { "user_about_me" } }; if (auth.Authorize()) { ShowFacebookContent(); } } 

要更改它,我现在已成功加载Javascript SDK并登录我的用户:

  
FB.init({ appId: 'xxxxxxx', cookie: true, status: true, oauth: true }); FB.getLoginStatus(function (response) { if (response) { alert(response.authResponse.accessToken); } });

我已经测试了这个并且它成功登录了用户。 但是,如何让它进行回发并调用之前调用的服务器端方法(ShowFacebookContent)? 我假设无论我做什么都必须传递accessToken或SignedRequest,以便fb.ParseSignedRequest可以工作,在服务器上我们可以生成一个FacebookClient。

我猜测有几个人会遇到类似的情况,试图从facebook.web.dll迁移出来,所以任何指导都会非常棒。

根据您的需要传递signed_request或access_token。

并且也不要通过http传递access_token。 使用安全的https连接。