如何连接新的Facebook C#SDK v5.0?

时间:2011-11-25 12:50:06

标签: asp.net facebook facebook-c#-sdk

我已经使用旧的v3.0 C#SDK一段时间了,Facebook已决定弃用该API并阻止它,因此我无法再使用它。我正在尝试升级到v5.0但它似乎有很多不同,我无法让它进行身份验证。

所有我需要的是一个Facebook登录按钮,人们点击,登录并允许我的应用程序的权限(这是有效的)但我希望能够在后面的代码中的C#SDK上调用Get()来获取他们的朋友们。这是我在我的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");

我缺少什么才能获得这种有效的authtoken?如何在后面的代码中访问它?使用FacebookClient和FacebookWebClient有什么区别?

1 个答案:

答案 0 :(得分:1)

在您的web.config文件中,您还必须设置:

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

并获得当前用户:

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