处理facebook到期令牌

时间:2013-09-03 14:32:15

标签: c# facebook-c#-sdk

将facebook API与桌面应用程序集成时,我遇到了一些麻烦。

现在,我正在尝试使用Facebook SDK for .NET: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岁(我在桌面应用程序中使用)。

非常感谢! =)

1 个答案:

答案 0 :(得分:0)

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

您无法扩展已过期的令牌,您只能扩展有效的令牌。例如短期(两小时)令牌到一个长寿令牌(两个月)