我正在facebook应用程序上工作。我正在从我的应用用户那里获得离线访问权限。现在我希望我可以使用用户第一次使用我的应用时生成一次的相同令牌,并且我将该令牌存储在我的数据库中,并且每当用户在我们的网站上再次登录并希望通过我们的应用发布一些帖子时我们将在墙上发布相同的标记。Facebook离线访问.NET SDK
这里是我的代码
protected void Page_Load(object sender, EventArgs e)
{
var auth = new CanvasAuthorizer { Permissions = new[] { "user_about_me", "publish_stream", "video_upload", "share_item", "photo_upload", "offline_access" } };
var fbWebContext = FacebookWebContext.Current;
if (fbWebContext.IsAuthorized())
{
try
{
var fb = new FacebookWebClient(fbWebContext);
var token = fb.AccessToken; \\ Im Getting Token This Way When its Generated From User After Getting Extended Permission
dynamic result = fb.Get("/me");
long id = fbWebContext.UserId;
}
catch (Exception ex)
{
if ("(OAuthException) Error validating access token: The session is invalid because the user logged out or because auth.expireSession was invoked." == ex.Message)
{
fbWebContext.DeleteAuthCookie();
Session.Clear();
}
}
}
}
我使用var token = fb.AccessToken
获得访问令牌,但是当我使用它,它说
您的令牌在UNIX时间XXXXXXXXXX已过期。
任何人都可以告诉我任何人,如果这是访问令牌请求脱机访问的扩展权限后,为什么它说“您的访问令牌已过期?”。任何人都可以帮忙吗?
Ramhound:我想你是错误的。基本上在oAuth 2.0中有不同类型的认证。带有过期令牌和不可过期令牌。当用户获得任何Facebook应用程序的扩展权限时,Facebook提供不可过期令牌。 – 2011-05-06 22:13:57
您正在使用哪个库来处理认证/权限请求? – dwarfy 2011-05-07 11:44:57
我想你可以尝试自己做oauth过程,这只是建立一个URL并加载它的问题..? – dwarfy 2011-05-07 11:54:07