GoogleDrive SDK- поиск файлов внутри папки

Я пытаюсь получить все элементы в определенной папке.

Я использовал эту документацию:
https://developers.google.com/drive/v2/reference/files/list

И на основании этого я написал следующее:

string url = string.Format("https://www.googleapis.com/drive/v2/files?'q'=\"'{0}' in parents\"", folderId);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = WebRequestMethods.Http.Get;
WebResponse response = request.GetResponse();

И я получаю ошибку:

(401) Несанкционированный

Или когда я копирую запрос в браузер, я получаю это:

{"error": {"errors": [{"domain": "global", "reason": "required", "message": "Требуется вход в систему", "locationType": "header", "location": " Авторизация " } ], " код ": 401, " сообщение ":" Требуется вход в систему " } }

Я также использовал этот вопрос в качестве ссылки:
Получение списка файлов по папке на Drive SDK
И я не вижу, что я сделал по-другому

РЕДАКТИРОВАТЬ:
У меня есть этот параметр, который содержит аутентификацию:

DriveService service  

Раньше, чтобы получить ВСЕ файлы, я делал это:

FilesResource.ListRequest request = service.Files.List();   

Но теперь, когда я пытаюсь взять конкретные предметы, я не уверен, как это сочетать service

3 ответа

Решение

Вы могли бы начать смотреть на быстрый старт C#.

Быстрый старт позволит вам авторизоваться с консоли, а затем покажет, как вставить файл на Google Диск.

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

Private Sub GetFileList(ParentFolder As String)

    Authorize() 'Take care of authorization... you could use JS to ask the user and get the Auth Token

    'MSO - 20130423 - Search the Google Drive File with the specified foldername
    'Create the search request
    Dim oListReq As Google.Apis.Drive.v2.FilesResource.ListRequest
    Dim oFileList As FileList
    'mimeType = 'application/vnd.google-apps.folder'

    oListReq = oDriveService.Files.List()
    'Search for a specific file name
    oListReq.Q = "mimeType = 'application/vnd.google-apps.folder' and title = '" + ParentFolder + "' and trashed=false"
    oListReq.Fields = "items/id" 'MSO - 20130621 - only ID needed for next query
    oListReq.MaxResults = 10 'Max 10 files (too may I Expect only 1)

    'Get the results
    oFileList = oListReq.Fetch()

    'Only 1 result is expected
    If oFileList.Items.Count = 1 Then
        Dim oFile As File = oFileList.Items(0)
        FolderId = oFile.Id 'Get FolderId
    End If

    oListReq = oDriveService.Files.List()
    'Search for a specific file name in the folder
    oListReq.Q = "'" + FolderId + "' in parents and trashed=false "
    'oListReq.Fields = "items(id,alternateLink)" 'MSO - 20130621 - Optimize your query if you need only certain fields

    'Get the results
    oFileList = oListReq.Fetch()

    'TODO: oFileList now have the list of the files in the folder, but there could me more "pages"

End Sub

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

Вам необходимо подтвердить подлинность ваших запросов с действительным токеном доступа. Пройдите через OAuth 2.0, чтобы узнать, как получить токен доступа, или используйте нашу клиентскую библиотеку Java, которая поставляется с поддержкой OAuth 2.0 [2].

[1] https://developers.google.com/accounts/docs/OAuth2

[2] https://developers.google.com/drive/auth/web-server

Использование googleApis V3. Это пример кода:

 string FolderId = "1lh-YnjfDFMuPVisoM-5p8rPeKkihtw9";
        // Define parameters of request.
        FilesResource.ListRequest listRequest = DriveService.Files.List();
        listRequest.PageSize = 10;
        listRequest.Q = "'" + FolderId + "' in parents and trashed=false";
        listRequest.Fields = "nextPageToken, files(*)";

        // List files.
        IList<Google.Apis.Drive.v3.Data.File> files = listRequest.Execute()
            .Files;

Надеюсь на эту помощь.

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

Другие вопросы по тегам