Миграция с V5 на V6 Facebook C # SDK - PullRequest
4 голосов
/ 20 февраля 2012

Я пытаюсь перейти с V5.3.2 на V6 SDK. У меня есть приложение ASP.NET 4.0 Canvas. Я заметил, что теперь нет больше facebook.web.dll (который я ранее использовал), и нашел эту информацию:

> Удаление Facebook.Web.dll и Facebook.Web.Mvc.dll Начиная с v6, мы устарели с Facebook.Web.dll и Facebook.Web.Mvc.dll и больше не будем их предоставлять. ... Начиная с версии 6, вам нужно будет использовать Javascript SDK Facebook, чтобы получить токен доступа и передать его на сервер через безопасное соединение https или использовать диалог входа OAuth Facebook. Расшифровка подписанного запроса (ParseSignedRequest / TryParseSignedRequest) вместо этого была перемещена в FacebookClient.

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

<<<< (<a href="http://blog.prabir.me/post/Facebook-CSharp-SDK-Glimpse-into-the-Future.aspx" rel="nofollow">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 Ответ

1 голос
/ 20 февраля 2012

В зависимости от вашей потребности, передайте подписанный подпись или access_token.

И также не передавайте доступный доступ через http.Используйте безопасное https соединение.

...