我已经使用旧的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有什么区别?
答案 0 :(得分:1)
在您的web.config文件中,您还必须设置:
<facebookSettings appSecret="your app secret" appId="your app id" />
并获得当前用户:
var facebookApp = new FacebookApp();
facebookApp.Api("/4");