我正在测试c#facebook并遇到以下错误:
以下是代码:
FacebookApp app = new FacebookApp();
Authorizer authorizer = new Authorizer(app);
System.Diagnostics.Debug.WriteLine(app.Session);
if (authorizer.IsAuthorized())
{
Response.Write("userid:" + app.UserId + "<br/>");
var me = (IDictionary<string, object>) app.Get("me");
foreach (string key in me.Keys)
{
Response.Write(key +":" + me[key]+"<br/>");
}
}
}
登录facebook时代码工作正常。但是,当我尝试注销facebook网页并尝试再次访问该页面时,行app.get(“我”)将抛出接受(OAuthException)错误验证访问令牌并且app.session仍然有效。
我做错了什么并且做了authorizer.IsAuthorized call return true甚至从facebook注销?
由于
答案 0 :(得分:0)
Cookie会过期。不确定官方答案,但Facebook的Cookie会过期(除非您已请求离线访问)。你必须考虑到这一点。
答案 1 :(得分:0)
我相信当您登录Facebook时,由于facebook存储在您的计算机上的经过身份验证的cookie,您上面的代码正常工作,并且只要您拥有经过身份验证的Cookie,当您尝试调用其中一个图表时,facebook就不会抱怨api(即/我)。但是,当您退出Facebook时,您的cookie不再有效。我认为你需要为用户获取一个访问令牌,以便即使用户退出Facebook也可以进行图形api调用,因为如果facebook没有找到经过身份验证的cookie或有效的访问令牌,那么facebook会给你错误。在这里查看更多信息: