我尝试使用为iOS提供的SDK从Google云端硬盘下载文件。但它给了我这个错误:
错误Domain = com.google.HTTPStatus Code = 400"(null)"
以下是下载代码:
GTLDriveFile *file = [driveFiles objectAtIndex:indexPath.row];
NSString *url = [NSString stringWithFormat:@"https://www.googleapis.com/drive/v3/files/%@?alt=media",
file.identifier];
GTMSessionFetcher *fetcher = [self.service.fetcherService fetcherWithURLString:url];
[fetcher beginFetchWithCompletionHandler:^(NSData *data, NSError *error) {
if (error == nil) {
NSLog(@"Retrieved file content");
// Do something with data
} else {
NSLog(@"An error occurred: %@", error);
}
}];
但是,我能够列出所有文件,并且我也仔细检查了包标识符。
有什么建议我错过了吗?
答案 0 :(得分:1)
在URL中添加密钥(iOS的API密钥)参数 然后尝试下面的代码:
GTLDriveFile *file;//Your Object
NSString *url = [NSString stringWithFormat:@"https://www.googleapis.com/drive/v3/files/%@?key=YOUR_KEY_iOS",
file.identifier];
GTMSessionFetcher *fetcher = [self.service.fetcherService fetcherWithURLString:url]; //GTLServiceDrive *service;
[fetcher beginFetchWithCompletionHandler:^(NSData *data, NSError *error) {
if (error == nil) {
NSLog(@"Retrieved file content");
// File Download here
} else {
NSLog(@"An error occurred: %@", error);
}
}];
答案 1 :(得分:0)
我尝试过Successfuly,但没有使用以下代码。NSString *url = [NSString stringWithFormat:@"https://www.googleapis.com/drive/v3/files/%@?alt=media",
file.identifier];
我使用file.webContentLink
。