我一直在努力让它发挥作用。我非常有信心我正确设置了我的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也总是为空。
我一直在绞尽脑汁,像heck一样google。而且,我觉得我已经正确设置了FB应用程序。哦,我正在使用最新的5.0.03测试版。谢谢!
答案 0 :(得分:0)
您是否在注册FB应用程序的域中测试应用程序?如果没有,那么这可能是你的问题 - 我很确定你需要在注册域名上才能获得授权。
答案 1 :(得分:0)
@HOCA我通过http://localhost:5000对此进行测试,这就是我在Facebook上设置的方式。再次,当我在
上设置断点时if (response.session)
在login.aspx页面上的(不是代码隐藏)我得到一个完全填充的会话对象,其中包含所有好东西。只有当它遇到代码隐藏时才会被“授权”。我已经非常成功地使用这个Facebook应用程序与其他Facebook asp.net代码,但我不能让这个SDK代码工作。