如何使用Google Drive SDK从其他用户帐户根据其ID访问共享文件?

时间:2015-03-11 19:13:14

标签: ios objective-c google-drive-api

我正在开发一个iOS应用程序,其中一个用户(所有者)可以共享一个目录,然后将目录ID传递给另一个用户(订阅者),该用户在自己的设备上运行相同的应用程序。两个用户都拥有不同的Google帐户。目前,该应用程序使用完整的驱动器范围(kGTLAuthScopeDrive)。

在所有者方面,我创建了目录:

GTLDriveFile *folder = [GTLDriveFile object];
folder.title = name;
folder.mimeType = @"application/vnd.google-apps.folder";

GTLQueryDrive *query = [GTLQueryDrive queryForFilesInsertWithObject: folder uploadParameters: nil];

[_service executeQuery: query completionHandler: completion]; 

在其上添加与订阅者相关的权限:

GTLDrivePermission *permission = [GTLDrivePermission new];

permission.value = subscriberEmail;
permission.type = @"user";
permission.role = @"writer";

GTLQueryDrive *query = [GTLQueryDrive queryForPermissionsInsertWithObject: permission fileId: directory.identifier];

query.sendNotificationEmails = NO;

[_service executeQuery: query completionHandler: completion]; 

在订阅方,一旦收到共享目录ID:

GTLQueryDrive *query = [GTLQueryDrive queryForFilesGetWithFileId: sharedFolderID];

[_service executeQuery: query completionHandler: completion];

问题是我在访问订阅方的共享目录时总是遇到404错误。

如果我使用API​​资源管理器执行Files.get请求,则在使用订阅者帐户登录时,请求会成功。

同样使用上面的代码,如果我将permission.type更改为“any”,问题就会消失,但这不是一个真正的解决方案。

我做错了什么或目前iOS SDK不支持?如果是这种情况,是否有另一种方法来支持这种共享模式?

0 个答案:

没有答案
相关问题
最新问题