Я пытаюсь перейти с 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, поэтому любые рекомендации будут действительно хорошими.