Я пытаюсь подключиться к своей личной учетной записи Google Диска и собрать список имен файлов.C# API-интерфейс Google Диска Список файлов с моего личного диска
То, что я сделал:
- установлены все пакеты NuGet требуется
- Добавлена Google Drive Менеджеру API в консоли разработчика Google
- настроить Service Account и загрузить ключ P12 для аутентификации
Написал следующий код, чтобы позвонить по API:
string EMAIL = "[email protected]"; string[] SCOPES = { DriveService.Scope.Drive }; StringBuilder sb = new StringBuilder(); X509Certificate2 certificate = new X509Certificate2(@"c:\\DriveProject.p12", "notasecret", X509KeyStorageFlags.Exportable); ServiceAccountCredential credential = new ServiceAccountCredential( new ServiceAccountCredential.Initializer(EMAIL) { Scopes = SCOPES }.FromCertificate(certificate) ); DriveService service = new DriveService(new BaseClientService.Initializer() { HttpClientInitializer = credential }); FilesResource.ListRequest listRequest = service.Files.List(); IList<Google.Apis.Drive.v3.Data.File> files = listRequest.Execute().Files; if (files != null && files.Count > 0) foreach (var file in files) sb.AppendLine(file.Name);
Этот код работает нормально. Проблема в том, что я получаю только один возвращаемый файл, он называется «Getting started.pdf», и я понятия не имею, откуда, черт возьми, он приходит. Я думаю, что проблема в том, что моя личная учетная запись Google Диска не подключена к этому коду. Как получить этот вызов, чтобы вернуть файлы из моей личной учетной записи Google Диска?
Единственная помощь, которую я смог найти, заключалась в том, чтобы получить доступ к любым конечным пользователям учетной записи Google Диска в вашем интерфейсе. Мой сценарий отличается от этого. Я хочу только подключиться к моим Google Drive за кулисами.
Большое спасибо за Ваш ответ! Решение 1 - это не вариант, но два других звука идеальны. Предостережение для решения 2 не является проблемой для меня, потому что я не хочу проходить через корневой каталог Google Диска в любом случае. –
Мне просто нужно немного больше советов. Для # 2 вы говорите: «Делитесь папкой на своей учетной записи Google в учетной записи службы, как и любой другой пользователь», и я не уверен, как это сделать. У меня нет никаких других пользователей *, поэтому, если бы вы могли прояснить это, я был бы признателен! Для # 3 я не уверен, как получить токен обновления, который вы упомянули. Поскольку мой код работает в сервисе, я не могу себе представить, как он может открыть интерфейс Google и позволить мне войти в систему в первый раз. Есть ли простой способ вручную захватить один из этих токенов? Если да, истекают ли они? Еще раз спасибо! –
до тех пор, пока вы не измените имя пользователя, которое вы отправляете с помощью Oauth2, будут использовать те же учетные данные, но учетные данные все равно могут не работать. На самом деле я бы пошел с номером 2, если можно. – DaImTo