Google Cloud Client Libraries не заливается файл в собственный drive
От: Aleksey82  
Дата: 30.09.23 22:31
Оценка:
Всем привет

Подтолкните пожалуйста. Первый раз работаю с гугловыми библиотеками, пока пытаюсь запустить хотябы пример, не получается.

У меня цель — залить и скачать файл с гугл драйва. Для первого теста пробую на своем собственном гугл-аккаунте.

Я взял сэмплы https://github.com/googleworkspace/dotnet-samples
Скачал gcloud CLI, сделал gcloud auth application-default login и залогинился в свой гугл аккаунт.

После этого в сэмплах стала работать инициализация
GoogleCredential credential = GoogleCredential.GetApplicationDefault().CreateScoped(DriveService.Scope.Drive);



Но теперь попытка залить тестовый файл вызывает ошибку
protected string CreateTestBlob(string filePath)
        {
            var fileMetadata = new Google.Apis.Drive.v3.Data.File();
            fileMetadata.Name = "photo.jpg";
            using (var stream = new FileStream(filePath, FileMode.Open))
            {
                var request = service.Files.Create(
                    fileMetadata, stream, "image/jpeg");
                request.Fields = "id";
                IUploadProgress test = request.Upload();
                
                var file = request.ResponseBody;
                return "";
            }
        }


IUploadProgress test = request.Upload(); — тут реквест возвращает эксепшн "The service drive has thrown an exception. HttpStatusCode is Forbidden. Request had insufficient authentication scopes."

Что оно от меня хочет и как залить файл с компа на свой гугл-драйв используя их клиентские библиотеки?
Re: Google Cloud Client Libraries не заливается файл в собственный drive
От: RushDevion Россия  
Дата: 02.10.23 07:11
Оценка:
Я с этой штукой не работал, но ошибка явно указывает на проблему с аутентификацией.
Предположу, что должен быть способ связать полученный credential c отправляемым request (в твоём примере я этой связки не увидел)

Плюс, в описании API нужно посмотреть, какие scopes нужны для загрузки файла, возможно их больше или они другие, чем ты запрашивает по дефолту.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.