Я использую следующий код службы для получения папок пользователей. Я включил API диска и хочу использовать служебную учетную запись...
На диске есть папки, но Execute не возвращает ни одной.
Чего может не хватать?
using Google.Apis.Auth.OAuth2;
using Google.Apis.Drive.v3;
using Google.Apis.Services;
namespace GoogleDriveService.Business.Services;
public class GoogleApiDriveService
{
private DriveService _driveService;
public GoogleApiDriveService()
{
var credentialsFilePath = "myservice-12aaae22210a.json";
GoogleCredential credential = GoogleCredential.FromFile(credentialsFilePath)
.CreateScoped([DriveService.Scope.Drive,
DriveService.Scope.DriveFile,
DriveService.Scope.DriveReadonly]);
var initializer = new BaseClientService.Initializer { HttpClientInitializer = credential };
_driveService = new DriveService(initializer);
}
public List<Google.Apis.Drive.v3.Data.File> GetFolders()
{
var request = _driveService.Files.List();
request.IncludeItemsFromAllDrives = true;
request.SupportsAllDrives = true;
request.Q = "mimeType='application/vnd.google-apps.folder'";
var result = request.Execute();
return result.Files.ToList();
}
}
Я включил API диска, загрузил ключ служебной учетной записи и запустил код.
если я позвоню по поводу, я получу ответ...
var req = _driveService.About.Get();
req.Fields = "*";
var about = req.Execute();`
Учетная запись службы — это не вы и не ваши пользователи. У него есть своя учетная запись на диске. На нем нет папок, пока вы их не создадите или не предоставите ему доступ к данным, принадлежащим кому-то другому, поделившись с ним этими данными.
Перейдите к учетной записи диска пользователя и поделитесь ею с адресом электронной почты учетной записи службы, после чего он получит доступ к данным.
вы открыли мне глаза, упомянув, что учетная запись службы — это не вы и не ваши пользователи. У него есть своя учетная запись на диске...