Я, черт возьми, пытался заставить это работать. Я уверен, что у меня правильно настроены приложения Facebook и что я использую правильный appId и appSecret. Когда я отлаживаю Login.aspx и ставлю точку останова на
if (response.session)
Я вижу, что оно заполнено правильно с помощью access_token. Но когда он попадает в код позади
if (auth.IsAuthorized())
всегда ложно! Вот код на странице aspx, который только что из образца.
<h2>Log In </h2>
<p>
<fb:login-button autologoutlink="true" perms="email,user_birthday,offline_access,status_update,publish_stream"></fb:login-button>
</p>
<div id="fb-root">
</div>
<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript">
FB.init({ appId: '<%: Facebook.FacebookContext.Current.AppId %>', status: true, cookie: true, xfbml: true });
FB.Event.subscribe('auth.sessionChange', function (response) {
if (response.session) {
// A user has logged in, and a new cookie has been saved
window.location.reload();
} else {
// The user has logged out, and the cookie has been cleared
//src="http://connect.facebook.net/en_US/all.js"
}
});
</script>
Я даже пытался использовать это в коде позади страницы входа в систему
public FacebookSession CurrentSession
{
get { return (new CanvasAuthorizer()).Session; }
}
if (CurrentSession != null)
{
Facebook.FacebookClient fbApp = new FacebookClient(CurrentSession.AccessToken);
dynamic result = fbApp.Get("/me");
}
И CurrentSession также всегда равен нулю.
Я ломал голову над этим и гулял как черт. И снова я чувствую, что приложение FB настроено правильно. О, я использую последнюю версию бета-версии 5.0.03. Спасибо!