我使用Facebook访问令牌在我自己的页面上发布但是现在我得到了我的访问令牌过期的例外原因?

时间:2014-02-12 22:31:29

标签: c# facebook winforms

private string PostFacebookWall(string accessToken, string message)
{
    var responsePost = "";
    try
    {
        //create the facebook account object
        var objFacebookClient = new FacebookClient(accessToken);
        var parameters = new Dictionary<string, object>();
        parameters["message"] = message;
        responsePost = objFacebookClient.Post("feed", parameters).ToString();
    }
    catch (Exception ex)
    {
        responsePost = "Facebook Posting Error Message: " + ex.Message;
    }
    return responsePost;
}

这是我用于发布的方法。 几个小时前我创建了访问令牌,它没有问题我可以在墙上发布消息没问题。

现在它向驼峰逼近并抛出异常:

(OAuthException - #190) Error validating access token: Session has expired on 12 פברואר 2014 09:00. The current time is 12 פברואר 2014 14:27.

Facebook.FacebookOAuthException was caught
  HResult=-2146233088
  Message=(OAuthException - #190) Error validating access token: Session has expired on 12 פברואר 2014 09:00. The current time is 12 פברואר 2014 14:27.
  Source=Facebook
  ErrorCode=190
  ErrorSubcode=463
  ErrorType=OAuthException
  StackTrace:
       at Facebook.FacebookClient.ProcessResponse(HttpHelper httpHelper, String responseString, Type resultType, Boolean containsEtag, IList`1 batchEtags)
       at Facebook.FacebookClient.Api(HttpMethod httpMethod, String path, Object parameters, Type resultType)
       at Facebook.FacebookClient.Post(String path, Object parameters)
       at ScrollLabelTest.Form1.PostFacebookWall(String accessToken, String message) in e:\scrolllabel\ScrollLabel\ScrollLabel\Form1.cs:line 266
  InnerException: 

有没有办法永远获得访问令牌?所以它不会再过期了吗?

1 个答案:

答案 0 :(得分:1)

所谓的短暂访问令牌,在两小时后过期,以及所谓的长期访问令牌,在60天后过期。没有办法接收不到期的!

保证您使用的是短期访问令牌。

所以这里的文档https://developers.facebook.com/docs/facebook-login/access-tokens/#termtokenshttps://developers.facebook.com/docs/facebook-login/access-tokens/#extending这里的文档可以看到如何将短命的文章交换为长寿文本。