如何使用 GoogleAPIClientForREST [Swift] 获取具有共享链接的文件列表
Posted
技术标签:
【中文标题】如何使用 GoogleAPIClientForREST [Swift] 获取具有共享链接的文件列表【英文标题】:How to get a list of files with shared-link using GoogleAPIClientForREST [Swift] 【发布时间】:2022-01-20 18:29:58 【问题描述】:我正在构建一个应用程序,用户可以在其中使用 Google 云端硬盘的共享链接下载文件。
尝试获取包含共享文件夹链接的文件列表,但找不到任何说明如何执行此操作的文档。
到目前为止我所尝试的
-
使用 GoogleAPIClientForREST 'fetchObject'
googleDriveService.fetchObject(with: url, objectClass: nil, executionParameters: nil) ticket, any, e in
print("thicket", ticket, any, e)
(我用'link'作为https://drive.google.com/drive/folders/1EVHGkbGwlFAi16DhVG4ZoYEng6UQ7_Km?usp=sharing进行了测试) 但它在下面返回错误
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Got unexpected content type 'text/html; charset=utf-8''
-
使用 GoogleAPIClientForREST '查询'
let query = GTLRDriveQuery_FilesList.query()
query.q = "'\(url)'"
query.spaces = "drive"
query.corpora = "user"
googleDriveService.executeQuery(query) (_, result, error) in
返回“无效查询”错误。
-
使用带有 fileID 的 GoogleAPIClientForREST“查询”
guard let url = URL(string: text) else
return
googleDriveService.executeQuery(GTLRDriveQuery_FilesGet.query(withFileId: url.lastPathComponent)) ticket, any, e in
同样,返回以下错误。
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Got unexpected content type 'text/html; charset=utf-8''
是否可以使用 GoogleAPIClientForREST 做到这一点?
如果不是,那会是什么替代品?
如果我需要提供更多详细信息,我很乐意这样做。
感谢您的宝贵时间。
【问题讨论】:
【参考方案1】:自己解决了。
我可以简单地使用 GoogleAPIClientForREST 在下面发送查询。 它返回一个文件列表!
let comps = sharedURL.components(separatedBy: "/")
guard let folderID = comps.last?.components(separatedBy: "?").first else
failed()
return
let query = GTLRDriveQuery_FilesList.query()
query.q = "'\(folderID)' in parents"
query.spaces = "drive"
query.corpora = "allDrives"
query.includeItemsFromAllDrives = true
query.supportsAllDrives = true
【讨论】:
以上是关于如何使用 GoogleAPIClientForREST [Swift] 获取具有共享链接的文件列表的主要内容,如果未能解决你的问题,请参考以下文章
如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]
如何使用 AngularJS 的 ng-model 创建一个数组以及如何使用 jquery 提交?