Проверьте статус входа в Facebook и получите информацию о сеансе, используя Facebook C # SDK - PullRequest
4 голосов
/ 07 декабря 2011

На входе я инициализировал FB и вошел в систему с помощью:

  window.fbAsyncInit = function () {
        FB.init({
            appId: @facebookAppId, // App ID
            status: true, // check login status
            cookie: true, // enable cookies to allow the server to access the session
            xfbml: true,  // parse XFBML
            oauth: true
        });

        // Additional initialization code here
        FB.Event.subscribe('auth.login', function () {
            window.location = "/facebookPostAuth.aspx";
        });

        FB.Event.subscribe('auth.logout', function (response) {
            window.location = '/logout';
        });

        // Hack to fix http://bugs.developers.facebook.net/show_bug.cgi?id=20168 for IE7/8/9
        FB.UIServer.setLoadedNode = function (a, b) { FB.UIServer._loadedNodes[a.id] = b; };

    };

    // Load the SDK Asynchronously
    (function (d) {
        var js, id = 'facebook-jssdk'; if (d.getElementById(id)) { return; }
        js = d.createElement('script'); js.id = id; js.async = true;
        js.src = "//connect.facebook.net/en_US/all.js";
        d.getElementsByTagName('head')[0].appendChild(js);
    } (document));

На сервере, как проверить, существует ли сеанс входа в систему с использованием Facebook C # SDK?

Это столько, сколько я получил, но я не уверен, как передать идентификатор приложения / секретный ключ для получения дополнительной информации (например, электронная почта, которую я включил в область входа в систему):

 var client = new FacebookClient();
            dynamic me = client.Get("me");
            string firstName = me.first_name;
            string lastName = me.last_name;
            string email = me.email;

1 Ответ

0 голосов
/ 07 декабря 2011
var client = new FacebookClient(appID, appSecret);

или

var client = new FacebookClient(accessToken);

Вы можете получить клиентский токен доступа с помощью javascript SDK и передать его на сервер в скрытом поле формы (обычное или ajax) или C #SDK раскрывает то, что он находит в файле cookie и / или подписанном запросе через FacebookWebContext.Current.AccessToken.В прошлом я обнаруживал некоторые проблемы с синхронизацией времени, когда Facebook не обновлял cookie новым токеном доступа / подписанным запросом своевременно, поэтому я получаю его в Javascript и отправляю на сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...