0

我更喜欢 iOS (Objective-C) 代码,但问题与 google drive API 相关联。因此,任何其他编程语言的解决方案都可能属于这里。

我之前的代码:

GTLQueryDrive *query = [GTLQueryDrive queryForFilesList];
query.q = ...;
... //send query and get links to files

但它在 Google Drive API v2 only 中是正确的——查询返回了一个GTLDriveFile对象列表和GTLDriveFile包含的字段downloadUrl

但是 Google Drive API v3 没有这样的字段,根据本文档,我应该执行附加请求queryForFilesGetWithFileId:并在它们之间链接 2 个结果,不是吗?如何解决这个问题?

4

2 回答 2

2

downloadUrl 已被删除。如果你想下载文件,我已经尝试成功了! 如何在 IOS 中从 google drive V3 API 下载 pdf?

于 2016-05-21T01:18:11.700 回答
1

参考下载文件,您将使用下面给定的 URL 之一,具体取决于您要执行的下载类型。

  • 下载文件 -files.get带有alt=media文件资源
  • 下载并导出 Google Doc —files.export
  • 将用户链接到文件 -webContentLink从文件资源

例如,要使用 下载文件alt=media,您需要向文件的资源 URL 发出经过授权的 HTTPGET请求,并包含查询参数 alt=media。使用示例请求格式:

GET https://www.googleapis.com/drive/v3/files/0B9jNhSvVjoIVM3dKcGRKRmVIOVU?alt=media
Authorization: Bearer ya29.AHESVbXTUv5mHMo3RYfmS1YJonjzzdTOFZwvyOAUVhrs

如前所述,您的应用程序必须获得允许读取文件内容的范围的授权。而且,使用drive.readonly.metadata范围的应用程序将无权下载文件内容。viewersCanCopyContent具有编辑权限的用户可以通过将该字段设置为 true来限制只读用户的下载。

请查看文档以获取执行给定类型下载的详细说明。

于 2016-05-21T09:19:43.437 回答