¿Cómo generar el token de acceso usando el token de actualización a través del SDK de Google Drive en .NET?

Tengo una aplicación .NET que utiliza Google Drive para acceder al archivo del usuario. Puedo obtener el código de autorización y he podido intercambiar el código de autorización por AccessToken y RefreshToken. El problema es que no puedo actualizar el token de acceso y caduca después de una hora.

Similar a esta pregunta:¿Cómo generar el token de acceso utilizando el token de actualización a través de la API de Google Drive? excepto que estoy trabajando en .NET (usando los DLL.APIs de Google ... DLL).

Estoy consciente de esto:https://developers.google.com/accounts/docs/OAuth2InstalledApp#refresh sin embargo, estoy esperando algún tipo de método disponible en el objeto IAuthorizationState o OAuth2Authenticator para permitirme actualizar el token de acceso.

Por favor avise. Gracias.

Tenga en cuenta que al usar este código puedo obtener el token de acceso. Es solo que estoy esperando que este código esté dentro de la API de Google.

    public class OAuth2AccessTokenReponse
    {
        public string access_token;
        public int expires_in;
        public string token_type; 
    }
    public static string refreshAccessToken()
    {
        using (System.Net.WebClient client = new System.Net.WebClient())
        {
            byte[] response = client.UploadValues("https://accounts.google.com/o/oauth2/token", new System.Collections.Specialized.NameValueCollection(){
                {"client_id", ClientID},
                {"client_secret", ClientSecret},
                {"refresh_token", "XXXXX"},
                {"grant_type", "refresh_token"}
            });
            string sresponse = System.Text.Encoding.Default.GetString(response);
            OAuth2AccessTokenReponse o = (OAuth2AccessTokenReponse) Newtonsoft.Json.JsonConvert.DeserializeObject(sresponse, typeof(OAuth2AccessTokenReponse));
            return o.access_token;        
        }
    }

Respuestas a la pregunta(2)

Su respuesta a la pregunta