Разрешение на загрузку документа Google, только если файл открыт для общего доступа - PullRequest
5 голосов
/ 18 мая 2019

Я знаю, что при авторизации запросов с помощью OAuth мы можем использовать несколько областей, чтобы запросить конкретное разрешение у пользователя. Я хочу запросить разрешение на скачивание файлов с общедоступными ссылками (эта ссылка будет предоставлена ​​пользователем).

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

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

private string[] Scopes = { DriveService.Scope.DriveFile};

private DriveService GetDriveServiceInstance()
{
    UserCredential credential;

    using (var stream = new FileStream("Services/credentials.json", FileMode.Open, FileAccess.Read))
    {
        string credPath = "token.json";
        credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
              GoogleClientSecrets.Load(stream).Secrets,
              Scopes,
              "user",
              CancellationToken.None,
              new FileDataStore(credPath, true)).Result;
          Console.WriteLine("Credential file saved to: " + credPath);
     }

     BaseClientService.Initializer bcs = new BaseClientService.Initializer();
     bcs.HttpClientInitializer = credential;
     bcs.ApplicationName = "synergy";

     DriveService service = new DriveService(bcs);
     return service;
    }

1 Ответ

2 голосов
/ 23 мая 2019

Способ работы oauth с Google Drive заключается в том, что вы запрашиваете доступ к учетной записи полного диска пользователя.

DriveService.Scope.DriveFile

enter image description here

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

enter image description here

drive.readonly предоставит вам полный доступ к их полной учетной записи диска для чтения и загрузки файлов.Невозможно ограничить ваш доступ только каталогом или только группой файлов.все или ничего.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...