Я пытаюсь загрузить файл с Google Диска с помощью .NET API.Истек срок доступа, но мы не можем его обновить.
private UserCredential _credential;
protected void Authorize()
{
var scopes = new[] {DriveService.Scope.DriveReadonly};
using (var stream = new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
{
var credentialPath = @"App_Data\credential";
_credential =
new UserCredential(new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer
{
ClientSecrets = GoogleClientSecrets.Load(stream).Secrets,
Scopes = scopes
}), Environment.UserName, new TokenResponse());
// I tried both ways, both result the same exception
//_credential = GoogleWebAuthorizationBroker.AuthorizeAsync(GoogleClientSecrets.Load(stream).Secrets, scopes, Environment.UserName, CancellationToken.None).Result;
}
}
public Download SaveAsDownload(string fileId)
{
if(_credential == null)
Authorize();
var service = new DriveService(new BaseClientService.Initializer()
{
ApiKey = ApiKey,
HttpClientInitializer = _credential
});
var getRequest = service.Files.Get(fileId);
var file = getRequest.Execute(); // When I call this I get the exception
return null;
}
Каждый раз, когда я пытаюсь сделать это, я получаю «Маркер доступа истек, но мы не можем обновить это» исключение. Единственный ответ, который я нашел, - попробовать другой способ аутентификации, но я попробовал оба, и оба результата имеют одинаковое исключение. Я пробовал как версии версии SD2, так и версии v3.
не помогло, все те же исключения – micnyk
Ваш код швов странный. попробуйте этот пример – DaImTo