我目前正在学习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, “消息”:“解析错误” } }
如何获取文件夹和文件列表,例如,等等,我不明白
欢迎任何意见/示例!
提前致谢
答案 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