Facebook graph api 接入令牌无限续费

Facebook graph api 接入令牌无限续费,facebook-graph-api,facebook-c#-sdk,Facebook Graph Api,Facebook C# Sdk,我正在编写一个社会管理工具。我需要Facebook的无限访问令牌 首先,请告诉我我是否理解正确; 访问令牌我们获得的原因是能够拥有用户对应用程序的帐户权限,并且此访问令牌还有60天到期。但即使在过期之后,仍然只有用户帐户对应用程序的权限,我们没有访问它的权限 过期后我可以续订访问令牌吗?我试过这样的东西 void GetToken() { try { WebClient webClient = ne

我正在编写一个社会管理工具。我需要Facebook的无限访问令牌

首先,请告诉我我是否理解正确; 访问令牌我们获得的原因是能够拥有用户对应用程序的帐户权限,并且此访问令牌还有60天到期。但即使在过期之后,仍然只有用户帐户对应用程序的权限,我们没有访问它的权限

过期后我可以续订访问令牌吗?我试过这样的东西

 void GetToken()
        {
            try
            {
                WebClient webClient = new WebClient();

                String fb_exchange_token = null;

                fb_exchange_token = ds.Tables[0].Rows[0]["token"].ToString();
                String newToken = fb_exchange_token;
                var fb = new FacebookClient();
                try
                {
                    dynamic result = fb.Get("oauth/access_token", new
                    {
                        client_id = client_id,
                        client_secret = client_secret,
                        grant_type = "fb_exchange_token",
                        fb_exchange_token = fb_exchange_token
                    });
                }
                catch (Exception ex)
                {
                    if (ex.Message.Contains("expired"))
                    {
                        dynamic result = fb.Get("oauth/access_token", new
                        {
                            client_id = client_id,
                            client_secret = client_secret,
                            grant_type = "client_credentials",
                            fb_exchange_token = fb_exchange_token
                        });

                        newToken = (string)result.access_token;
                        if (newToken != fb_exchange_token)
                            SqlHelper.ExecuteNonQuery(ConnectionString, "SocialTokenUpdate", ds.Tables[0].Rows[0]["SocialId"].ToString(), newToken);
                    }

                    DataProvider.ExceptionLogAdd("xx.aspx", "GetToken", ex.Message);
                }



                Session["Token"] = newToken;
                Session["FBPageId"] = ds.Tables[0].Rows[0]["SocailFBId"].ToString();
            }
            catch (Exception ex)
            {
                DataProvider.ExceptionLogAdd("xx.aspx", "GetToken", ex.Message);
            }
        }

如果您想自动生成新的accessToken,则意味着让应用程序打开第一个屏幕,在该屏幕上用户可以访问应用程序。然后它将生成新的accessToken。如果accessToken过期,请将其放入OAutheException并重定向到前屏幕