У меня есть веб-приложение, и я хочу, чтобы клиенты разрешали вставлять/обновлять/удалять файлы с автоматической аутентификацией

У меня есть веб-приложение С#, и я хочу, чтобы клиенты разрешали вставлять/обновлять/удалять файлы с автоматической аутентификацией с использованием клиентской библиотеки API Google. Мой первый вопрос заключается в том, возможно ли это с помощью «Сервисной учетной записи» или любого другого метода.

Я начал такие вещи, как:

  1. Включены 2 API Drive API и Admin SD
  2. Создал проект в Google Developers Console
  3. Созданы ключи API и идентификаторы клиентов OAuth 2.0 для проекта.
  4. Установил PM> Install-Package Google.Apis.Drive.v2 для моего веб-приложения. Версия dll показывает v4.0.30319, а моя платформа .net - 4.0.

person Gopal Biswas    schedule 16.05.2016    source источник


Ответы (1)


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

Лучший способ узнать, как это сделать, — Google Диск API, они обеспечивают хороший старт и множество примеров для задач, которые вы просите: REST API Google Диска, краткое руководство по .NET.

Если вы все еще сталкиваетесь с проблемами, есть и другие способы обучения: простое исследование Google дает хорошие результаты. Например, Daimto содержит руководство, которое вам нужно:

  • Аутентификация
  • Получить информацию о файлах
  • Загружать, обновлять, удалять файлы
  • Наконец пример проекта

Если вы все еще сталкиваетесь с проблемой, небольшое исследование очень помогает, задайте вопрос здесь.

person Kariamoss    schedule 16.05.2016
comment
Я пытаюсь создать учетную запись службы Google, как указано в ссылке daimto.com/google-drive-api-with-a-service-account, и у меня это работает нормально. Одна проблема, с которой я столкнулся. Предположим, на диске Google создана папка с именем UploadDocs, и я загружаю файлы в эту папку. Файлы успешно загружены в папку, но я вообще не мог видеть эти загруженные файлы. Это происходит для разрешений для папки UploadDocs? Пожалуйста помоги - person Gopal Biswas; 16.05.2016
comment
Это не может быть проблемой разрешения, если UploadDocs — это папка, которую вы создаете сами. Как вы загружаете свои файлы? - person Kariamoss; 16.05.2016
comment
Я использую сервисный аккаунт Google Drive. Я создал папку, используя код File NewDirectory = null; Тело файла = новый файл(); body.Title = _title; body.Description = _description; body.MimeType = application/vnd.google-apps.folder; body.Parents = новый список‹ParentReference›() { new ParentReference() { Id = _parent } }; Запрос FilesResource.InsertRequest = _service.Files.Insert(body); НовыйКаталог = Запрос.Выполнить(); Затем я загрузил файлы, используя приведенный ниже код. - person Gopal Biswas; 17.05.2016
comment
Тело файла = новый файл(); тело.Название = т; тело.Описание = а; body.MimeType = GetMimeType (_updFile); body.Parents = новый список‹ParentReference›() { new ParentReference() { Id = _parent } }; byte[] byteArray = System.IO.File.ReadAllBytes(_updFile); Поток System.IO.MemoryStream = новый System.IO.MemoryStream(byteArray); Запрос FilesResource.InsertMediaUpload = _service.Files.Insert(тело, поток, GetMimeType(_updFile)); запрос.Загрузить(); - person Gopal Biswas; 17.05.2016
comment
После создания папки и загрузки файла оба выполняются успешно. Код выборки данных IList‹File› Files = new List‹File›(); FilesResource.ListRequest list = service.Files.List(); FileList filesFeed = list.Execute(); Код извлечения данных также заполняет только что загруженный файл идентификатором/названием/описанием и т. д., но я не мог увидеть ни программно созданную папку, ни загруженные файлы на моем диске Google вручную. - person Gopal Biswas; 17.05.2016
comment
Вы прошли через обычный поток OAuth 2.0, чтобы получить учетные данные от пользователя? - person Kariamoss; 17.05.2016
comment
Нет. Я использовал API Google Диска со служебной учетной записью. Я сделал то, что точно указано в следующем URL-адресе: daimto. com/google-drive-api-with-a-service-account - person Gopal Biswas; 17.05.2016
comment
О, я вижу вашу проблему. Вот еще один вопрос об этом: stackoverflow.com/questions/12211859/ И вот ответ, который вам нужен: если вы хотите увидеть файлы под учетной записью пользователя без использования OAuth 2.0, то вы можете предоставить учетной записи службы разрешение на редактирование папки под учетной записью пользователя. Затем при загрузке файла с использованием учетной записи службы убедитесь, что вы установили идентификатор родительской ссылки для использования этого идентификатора папки. Идентификатор папки определяется в адресной строке. - person Kariamoss; 17.05.2016
comment
Спасибо за ваше драгоценное время и мнение. Разрешения требуются как для папки, так и для файлов. Спасибо - person Gopal Biswas; 18.05.2016
comment
Отлично, рад слышать - person Kariamoss; 18.05.2016