处理facebook过期令牌

本文关键字:令牌 过期 facebook 处理 | 更新日期: 2023-09-27 18:29:58

我在将facebook API与桌面应用程序集成时遇到了一些问题。

现在,我正在尝试使用适用于.NET的Facebook SDK:http://facebooksdk.net/

问题是:

当我使用我的代币时,Facebook会返回以下消息:

"验证访问令牌时出错:会话已在unix时间1365165488过期。当前unix时间为1378218499。"

我在一些帖子中看到,我可以这样做来更新我的访问令牌:

 Dictionary<string, object> fbParams = new Dictionary<string, object> ();
 fbParams["client_id"]         = token.appId;
 fbParams["grant_type"]        = "fb_exchange_token";
 fbParams["client_secret"]     = token.appSecret;
 fbParams["fb_exchange_token"] = token.accessToken;
 JsonObject publishedResponse = fbClient.Get ("/oauth/access_token", fbParams) as JsonObject;
 return publishedResponse["access_token"].ToString ();

但它不起作用;它抛出另一个具有相同消息的异常("会话已过期…")

有简单的方法吗?

我不知道这是否会影响我的应用程序,但这个访问令牌已经有1年的历史了(我正在桌面应用程序中使用)。

非常感谢

处理facebook过期令牌

消息很清楚,您使用的令牌已经过期(实际上已经超过四个月了)。您需要返回登录流程,用户到达授权屏幕。

您不能扩展已过期的令牌,只能扩展有效的令牌。例如,从短期(两小时)代币到长期代币(两个月)