У меня есть приложение.NET, которое использует Google Диск для доступа к файлу пользователя. Я могу получить код авторизации, и мне удалось обменять код авторизации с помощью AccessToken и RefreshToken. Проблема в том, что я не могу обновить токен доступа, и срок его действия истекает через час.
Аналогично этому вопросу:Как сгенерировать токен доступа с помощью токена обновления через API Google Диска? за исключением того, что я работаю в.NET (с использованием Google.API... DLL ).
Я знаю об этом:https://developers.google.com/accounts/docs/OAuth2InstalledApp#refreshоднако я ожидаю, что какой-то метод, доступный в объекте IAuthorizationState или OAuth2Authenticator, позволит мне обновить токен доступа.
Пожалуйста, порекомендуйте. Спасибо.
Обратите внимание, что с помощью этого кода я могу получить токен доступа. Просто я ожидаю, что этот код будет внутри Google API.
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;
}
}