因此,我试图允许两个用户交换每个用户在他们的 Google Drive 中的文件。这涉及知道其他人文件的 ID 并使用 API 调用来检索它。这两个文件都位于已共享给任何人/公众的文件夹中。
问题是当我执行下面的代码时,我发现每个用户只能使用与他们拥有的文件相对应的 downloadUrl - 其他人返回 404。在这种情况下,“我的”或“他们的”取决于我的帐户登录。
// _driveService and its authorizer setup elsewhere
// Retrieve the metadata then the actual data
NSString *mine = @"0B4Pba9IBDsR3T1NVTC1XSGJTenc";
NSString *theirs = @"0B4n9OyY8tqWpNlNaN1dUc3FsNG8";
NSString *get = [NSString stringWithFormat:@"https://www.googleapis.com/drive/v2/files/%@",theirs];
[_driveService fetchObjectWithURL:[NSURL URLWithString:get] completionHandler:^
(GTLServiceTicket *ticket, GTLDriveFile *file, NSError *error)
{
if (error != nil)
NSLog(@"Error retrieving metadata: %@", error);
else
{
// Download the actual data
GTMHTTPFetcher *fetcher = [_driveService.fetcherService fetcherWithURLString:file.downloadUrl];
[fetcher beginFetchWithCompletionHandler:^
(NSData *data, NSError *error)
{
if (error != nil)
NSLog(@"Error retrieving actual data: %@", error);
else
{
NSString *content = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"Content: %@", content);
}
}];
}
}];
检索实际数据时出错:Error Domain=com.google.HTTPStatus Code=404“操作无法完成。(com.google.HTTPStatus 错误 404。)”
我在这里做错了什么?如果是权限问题,为什么我可以获取元数据?
请注意,这是针对 iOS 应用程序,两个文件都是使用官方客户端 API(rev 353)从应用程序创建和上传的。