2012-04-27 3 views
3

Я изучаю API Google Диска и разрабатываю программу в Qt C++ (используя OAuth2), поэтому мне нужно создавать запросы, но я не нашел, как это сделать.GET/POST запрашивает API Google Диска

Например, если я делаю запрос - https://www.googleapis.com/oauth2/v1/userinfo?access_token=MY_ACCESS_TOKEN, все работает нормально - я получаю ответ.

Вопрос: как сделать СХОДНЫЙ запрос для Google Диска?

1) как я могу получить список папок и файлов

2) как я могу создать папку/файл и т.д.

Например, в запросе POST «https: // www.googleapis.com/drive/v1/files & названия = любимчики & MIMETYPE = применение/vnd.google-apps.folder»

я

"ошибка": { "ошибки": [{ "домен": "глобальное", "Причина": "parseError", "сообщение": "Parse Error" } ], "код": 400, "сообщение" : «Ошибка синтаксического анализа» }}

как получить список папок и файлов, например, и т.д., я не понимаю

Любые мнения/примеры приветствуются!

заранее спасибо

ответ

3

К сожалению, Drive API не позволяет перечислить папки или файлы. Единственный способ получить файл - это интегрировать с веб-интерфейсом веб-диска или показывать Google Picker вашему пользователю (только для веб-приложения).

Если у вас есть идентификатор файла, вы можете просто отправить запрос авторизованному GET к drive.files.get endpoint:

GET https://www.googleapis.com/drive/v1/files/id 

Для insert a file (or a folder), метаданные файла должен быть включен в теле запроса, а не в качестве параметра запроса:

POST https://www.googleapis.com/drive/v1/files 
Authorization: Bearer {ACCESS_TOKEN} 
Content-Type: application/json 
... 
{ 
    "title": "pets", 
    "parentsCollection": [{"id":"0ADK06pfg"}] 
    "mimeType": "application/vnd.google-apps.folder" 
} 

В приведенном выше примере, mimeType указывает, что ресурс вставляется папка. Измените mimeType на тип приложения MIME при вставке файла.

+0

Это все еще верно? что вы не можете перечислить файлы? – Tony

+0

Это все еще верно для v1, но v2 имеет конечную точку списка, которую вы можете использовать. – Alain

+0

По какой-то причине, когда я пытаюсь перечислить файлы, используя oauth2playground http://code.google.com/oauthplayground/, предоставленные google, API всегда будет возвращать пустой массив элементов, несмотря на то, что у меня есть множество файлов внутри google водить машину. Вы знаете, почему это может быть так? – Tony

0

Вы должны использовать Google Docs API для этого

Retrieving a list of collections - Google Documents List API version 3.0

В OAuth 2.0 площадка просто выбрать как Документы и Google Drive И вы получите полный список операций:

List FolderContent 
GET https://docs.google.com/feeds/default/private/full/{folderResouceId}/contents 

Не забудьте добавить параметр ?v=3 запроса к списку документов URI или добавление

GData-Version: 3.0 

, иначе он вернется "Invalid request URI".

0

Вы советуете посмотреть на Google Диск, ссылочных апите документы в

https://developers.google.com/drive/v3/reference/files/list

я преуспел, используя множество функций API следующей ссылку выше и с помощью завитка. Но на самом деле я рекомендую вам попробовать делать HTTP-запросы с помощью такого инструмента, как почтальон. Во всяком случае, после получения кода доступа, следуя инструкции ниже ссылки

list google drive files with curl

попытаться сделать следующую команду в командной строке.

curl -H 'GData-Version: 3.0' -H "Authorization: Bearer $ACCESS_TOKEN" \ 
     https://www.googleapis.com/drive/v2/files?maxResults=$100 
Смежные вопросы