На сервере запущено базовое приложение .net, и я хочу сохранить данные своего приложения непосредственно на Google Диске. Я использую обычную учетную запись Google для него с включенным Google Drive API (кажется, он включен) и служебную учетную запись с учетными данными, хранящимися в файле json. Вот код для создания службы Google Диск в моем приложении:
private DriveService CreateDriveServiceClient() => new DriveService(
new BaseClientService.Initializer()
{
HttpClientInitializer = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(this.config.ClientEmail)
{
Scopes = new string[]
{
DriveService.Scope.DriveAppdata,
},
}.FromPrivateKey(this.config.PrivateKey))
});
Используется область действия https://www.googleapis.com/auth/drive.appdata
, что приводит к строке drive.appdata
Однако я получаю следующую ошибку:
Insufficient Permission: Request had insufficient authentication scopes.] Location[ - ] Reason[insufficientPermissions] Domain[global]
при попытке доступа по крайней мере client.Drives.List().Execute();
Мне кажется, что мне нужно добавить роль для доступа к области видимости drive.appdata
. Но я не могу найти подходящую роль в консоли Google, а также не могу найти эту область при создании новой роли для служебной учетной записи
Как добавить разрешения для служебной учетной записи для использования Google Диска?