Как подключиться с новым Facebook C # SDK v5.0? - PullRequest
1 голос
/ 25 ноября 2011

Я уже давно пользуюсь старым C3 SDK v3.0, и Facebook решил отказаться от этого API, а также заблокировать его, чтобы я больше не мог его использовать. Я пытаюсь перейти на v5.0, но кажется, что он намного отличается, и я не могу заставить его пройти аутентификацию.

Все, что мне нужно, это кнопка входа в Facebook, на которой люди нажимают, входят в систему и разрешают доступ к моему приложению (что работает), но затем я хочу иметь возможность вызвать Get() в C # SDK в коде позади, чтобы получить своих друзей , Это то, что у меня есть на моей странице aspx, которая отлично работает, чтобы позволить им войти:

<input type="button" id="fblogin" value="Login to Facebook" disabled="disabled"/>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
    FB.init({
        appId: 'myappid',
        cookie: true,
        xfbml: true,
        oauth: true
    });

    function facebooklogin() {
        FB.login(function(response) {
            if (response.authResponse) {
                // user authorized
                // make sure to set the top.location instead of using 
                var accessToken = response.authResponse.accessToken;
                window.location.reload();
            } else {
                // user cancelled
            }
        },
          {
            scope: 'publish_stream' 
          });
    };

    $(function() {
        // make the button is only enabled after the facebook js sdk has been loaded.
        $('#fblogin').attr('disabled', false).click(facebooklogin);
    });
};
(function() {
    var e = document.createElement('script'); e.async = true;
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
} ());

Однако, когда я пытаюсь подключиться к клиенту Facebook, как показано ниже, он выдает ошибку, которая говорит

(OAuthException) Активный токен доступа должен использоваться для запроса информация о текущем пользователе. "} System.Exception {Facebook.FacebookOAuthException}

FacebookClient client = new FacebookClient(myappid, mysecretkey)
SomeDictionary object = client.Get("/me/friends");

Чего мне не хватает, чтобы получить этот активный авторинг? Как я могу получить к нему доступ в коде позади? Кроме того, в чем разница между использованием FacebookClient и FacebookWebClient?

1 Ответ

1 голос
/ 25 ноября 2011

В вашем файле web.config вы также должны установить:

<facebookSettings appSecret="your app secret" appId="your app id" />

и получить текущего пользователя:

var facebookApp = new FacebookApp();
facebookApp.Api("/4");
...