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].
Использование 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 Диске.