GET / POST请求Google Drive API

时间:2012-04-27 05:46:07

标签: google-drive-api

我目前正在学习Google Drive API并在Qt C ++中开发程序(使用OAuth2),因此我需要构建查询,但我找不到如何操作。

例如,如果我提出请求 - https://www.googleapis.com/oauth2/v1/userinfo?access_token=MY_ACCESS_TOKEN,一切正常 - 我收到了回复。

问题是:如何针对Google云端硬盘发出SIMILAR请求?

1)如何获取文件夹和文件列表

2)如何创建文件夹/文件 等

例如,在POST请求中 “https://www.googleapis.com/drive/v1/files&title=pets&mimeType=application/vnd.google-apps.folder”

我得到了

“错误”:{   “错误”:[{     “域名”:“全球”,     “reason”:“parseError”,     “消息”:“解析错误”    }   ]   “代码”:400,   “消息”:“解析错误”  } }

如何获取文件夹和文件列表,例如,等等,我不明白

欢迎任何意见/示例!

提前致谢

3 个答案:

答案 0 :(得分:3)

不幸的是,Drive API不允许您列出文件夹或文件。检索文件的唯一方法是与云端硬盘用户界面集成,或向用户展示Google Picker(仅限网络应用)。

获得文件ID后,您只需向drive.files.get endpoint发送授权的GET请求即可:

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类型。

答案 1 :(得分:0)

您应该使用google docs API

  

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

在OAuth 2.0 Playground中,只需选择文档列表和Google云端硬盘 您将获得完整的操作列表:

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

不要忘记将?v=3查询参数添加到文档列表URI或添加

GData-Version: 3.0

标头,否则会返回"Invalid request URI"

答案 2 :(得分:0)

您建议您查看

中的google drive api参考文档

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

我在上面的链接和使用curl之后成功使用了许多api函数。但实际上我建议你尝试用postman这样的工具做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