从Facebook C#SDK的V5迁移到V6

时间:2012-02-20 14:52:12

标签: c# facebook-c#-sdk

我尝试从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并登录我的用户:

    <div id="fb-root"></div>

<script type="text/javascript">
        FB.init({ appId: 'xxxxxxx', cookie: true, status: true, oauth: true });

        FB.getLoginStatus(function (response) {
            if (response) {
                alert(response.authResponse.accessToken);
            }
        });

</script>

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

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

1 个答案:

答案 0 :(得分:1)

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

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