如何使用 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 提交?

如何使用laravel保存所有行数据每个行名或相等

如何使用 Math.Net 连接矩阵。如何使用 Math.Net 调用特定的行或列?

WSARecv 如何使用 lpOverlapped?如何手动发出事件信号?