从Facebook C#SDK的V5迁移到V6

本文关键字:迁移 V6 V5 Facebook C#SDK | 更新日期: 2023-09-27 18:25:07

我正在尝试从SDK的V5.3.2迁移到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/TryParseSigned请求)已改为移动到FacebookClient。

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

<lt<lt;(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迁移出去,所以任何指导都会非常好。

从Facebook C#SDK的V5迁移到V6

根据需要传递signed_request或access_token。

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