我正在开发一个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不支持?如果是这种情况,是否有另一种方法来支持这种共享模式?