Я установил приложение C #, которое в настоящее время успешно связывается с Google Drive, выводит список файлов, загружает файлы и читает их содержимое. Пока все отлично, но теперь мне нужно иметь возможность изменять файлы, и я обнаружил, что по какой-то причине этого просто не происходит. Я считаю, что я использую правильную область, когда я аутентифицируюсь и проверил многочисленные комбинации безрезультатно. Я продолжаю получать следующую ошибку, когда она достигает «updateRequest.Execute ()»:
Код для аутентификации приведен ниже:
string[] scopes = { DriveService.Scope.Drive };
UserCredential credentials;
using (var stream = new FileStream(RESOURCE_DIRECTORY + "\\google_credentials_v2.json", FileMode.Open, FileAccess.Read))
{
string credPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
credPath = Path.Combine(credPath, ".credentials/drive-dotnet-quickstart.json");
credentials = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
scopes,
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
}
return credentials;
Код, который я использую для изменения файла, приведен ниже:
public static void MoveFileToNewFolder(DriveService service, string folderName, string fileId, string previousParents = "")
{
FilesResource.UpdateRequest updateRequest = service.Files.Update(new Google.Apis.Drive.v3.Data.File(), fileId);
updateRequest.Fields = "id, parents";
updateRequest.AddParents = GetFolderIDFromName(service, folderName);
updateRequest.RemoveParents = previousParents;
updateRequest.Execute();
}
Важные вещи, на которые стоит обратить внимание:
- Мое аутентифицированное приложение зарегистрировано как "Другое", когда я настроил свой доступ в Google API
- DriveService.Scope, который я использую, это «DriveService.Scope.Drive»
- Мне удалось загрузить файлы
- Я не добавил файл, который пытаюсь изменить с помощью этого приложения
Я не уверен, нужно ли мне вместо этого настроить это как учетную запись службы, но, насколько я понимаю, я смогу изменить файлы. Мое требование - иметь возможность загружать и изменять ВСЕ файлы и папки, находящиеся на диске, независимо от их происхождения.
Заранее спасибо!