我正在尝试更新我的 facebook 访问令牌以自动在我的墙上发布,但为什么得到空异常

  • 本文关键字:异常 更新 facebook 访问令牌 c# winforms
  • 更新时间 :
  • 英文 :


我想每隔几分钟获得一个新的访问令牌,以便在我的walla上自动发布一次。这是一个好方法吗?我得到空异常。例外情况如下:var request = HttpContext.Current.Request;

private string PostFacebookWall(string accessToken, string message)
{
    string code = "";
    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)
    {
        var request = HttpContext.Current.Request;
        if (request.QueryString["code"] != null)
           {
            code = request.QueryString["code"].ToString();
            GetAccessTokenFromCode("", "", "https://developers.facebook.com/tools/explorer/?method=GET&path=535075181%3Ffields%3Did%2Cname",code);
           }
        responsePost = "Facebook Posting Error Message: " + ex.Message;
    }
    return responsePost;
}

public string GetAccessTokenFromCode(string AppID, string AppSecret, string RedirectURL, string Code)
{
    WebClient wc = new WebClient();
    string u2 = "https://graph.facebook.com/oauth/access_token?client_id=" + AppID + "&redirect_uri=" + RedirectURL + "&client_secret=" + AppSecret + "&code=" + Code + "&state=anytexthere";
    string access = wc.DownloadString(u2);
    access = access.Substring(access.IndexOf("access_token") + 13);
    if (access.Contains("&"))
    {
        string accesstoken = access.Substring(0, access.IndexOf("&"));
        return accesstoken;
    }
    return access;
}

我在这一行上得到空:

var request = HttpContext.Current.Request;

编辑**

这是原始异常消息:(OAuthException - #190) 验证访问令牌时出错:会话已于 2014 年 12 月 09:00 过期。当前时间是 13 פברואר 2014 00:52。

这是完整的原始异常消息:

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 13 פברואר 2014 00:52.
  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:scrolllabelScrollLabelScrollLabelForm1.cs:line 268
  InnerException: 

所以我尝试每次过期时自动更新访问令牌。

您无法在

Winform中HttpContext。寻找其他获取code的方法

相关内容

最新更新