Facebook C # SDK Никогда не может заставить IsAthorized () вернуть true - PullRequest
2 голосов
/ 08 марта 2011

Я, черт возьми, пытался заставить это работать. Я уверен, что у меня правильно настроены приложения 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. Спасибо!

Ответы [ 2 ]

0 голосов
/ 08 марта 2011

@ HOCA Я тестирую это через мой http://localhost:5000, как я настроил его в Facebook. Опять же, когда я установил точку останова на

if (response.session) 

на странице login.aspx (не в коде) я получаю полностью заполненный объект сеанса со всеми вкусностями. Именно когда он попадает в кодовый код, ничто не может быть «авторизовано». И я очень успешно использовал это приложение Facebook с другим кодом Facebook asp.net, но я не могу заставить этот код SDK работать.

0 голосов
/ 08 марта 2011

Тестируете ли вы приложение из домена, в котором вы зарегистрировали приложение FB? Если нет, то это может быть вашей проблемой - я вполне уверен, что вам нужно быть на зарегистрированном домене, чтобы авторизация прошла успешно.

...