Я должен быть глупым, я думаю. Использование OAuth
.
иметь следующий кусок кода
// Authenticate with Google
using (MemoryStream stream =
new MemoryStream(GetSecrets()))
{
string credPath = "token.json";
this.userCredential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
scopes,
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
Console.WriteLine("Credential file saved to: " + credPath);
}
Работает нормально и устанавливает this.userCredential
как ожидалось
Теперь я хочу создать StorageClient
Но StorageClient
нельзя создать напрямую из UserCredential
.
Единственный способ, которым я могу видеть, - это создать из AccessToken
GoogleCredential googleCredential = GoogleCredential.FromAccessToken(this.userCredential.Token.AccessToken);
return StorageClient.Create(googleCredential);
Проблема в том, что этот токен истекает через час.
Однако в C # я не могу на всю жизнь найти способ передать токен обновления (который есть в UserCredential) и заставить его обновляться по мере необходимости
В Java
это представляется возможным, используя .Builder
Кто-нибудь знает, возможно ли это?