Jak wygenerować token dostępu za pomocą tokena odświeżania za pomocą zestawu SDK Google Drive w .NET?
Mam aplikację .NET, która korzysta z Dysku Google, aby uzyskać dostęp do pliku użytkownika. Jestem w stanie uzyskać kod autoryzacji i byłem w stanie wymienić kod autoryzacji przez AccessToken i RefreshToken. Problem polega na tym, że nie mogę odświeżyć tokena dostępu i wygasa po godzinie.
Podobnie do tego pytania:Jak wygenerować token dostępu za pomocą tokena odświeżania za pomocą interfejsu API dysku Google? poza tym, że pracuję w .NET (używając bibliotek DLL.API).
Zdaję sobie z tego sprawę:https://developers.google.com/accounts/docs/OAuth2InstalledApp#refresh jednak oczekuję jakiejś metody dostępnej w obiekcie IAuthorizationState lub OAuth2Authenticator, aby umożliwić mi odświeżenie tokena dostępu.
Proszę doradź. Dzięki.
Pamiętaj, że używając tego kodu mogę uzyskać token dostępu. Po prostu oczekuję, że ten kod znajdzie się w interfejsie 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;
}
}