Я выполнил следующую настройку:
- Создал проект в Google Cloud.
- Создал сервисный аккаунт для этого проекта.
- Создал ключ для этого сервисного аккаунта и скачал. он
- Убедился, что моя тестовая папка на диске Google имеет разрешение на чтение для учетной записи службы (с использованием адреса электронной почты, предоставленного облаком Google).
- Написал следующий код и скомпилировал его:
Код: Выделить всё
public class GoogleDriveService
{
public struct FileInfo
{
public string id;
public string name;
public string mimeType;
}
private readonly DriveService _driveService;
public GoogleDriveService(string serviceAccountJsonPath, string applicationName)
{
using (var stream = new System.IO.FileStream(serviceAccountJsonPath, System.IO.FileMode.Open, System.IO.FileAccess.Read))
{
var serviceAccountCredential = ServiceAccountCredential.FromServiceAccountData(stream);
_driveService = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = serviceAccountCredential,
ApplicationName = applicationName
});
}
}
public async Task ListFolderContents(string folderId)
{
var request = _driveService.Files.List();
request.Q = $"parents = '{folderId}'";
request.Fields = "nextPageToken, files(id, name, mimeType)";
var files = new List();
do
{
var response = await request.ExecuteAsync();
files.AddRange(response.Files);
request.PageToken = response.NextPageToken;
} while (!string.IsNullOrEmpty(request.PageToken));
var fileInfoList = new List();
foreach(File file in files)
{
fileInfoList.Add(new FileInfo()
{
id = file.Id,
name = file.Name,
mimeType = file.MimeType
});
}
return fileInfoList;
}
}
Служебный диск выдал исключение.
HttpStatusCode не авторизован.
Google.Apis.Requests.RequestError
В запросе указаны неверные учетные данные для аутентификации. Ожидается токен доступа OAuth 2, файл cookie для входа или другие действительные учетные данные для аутентификации.
Помогите мне устранить эту ошибку. (Были бы признательны за примеры кода, а не за указания к документации, поскольку я пытался, но не смог понять документы, и это лишь малая часть моего проекта.)
Подробнее здесь: https://stackoverflow.com/questions/792 ... older-from
Мобильная версия