使用iOS SDK从Google云端硬盘下载文件

时间:2016-05-26 15:45:28

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

我尝试使用为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);
    }
}];

但是,我能够列出所有文件,并且我也仔细检查了包标识符。

有什么建议我错过了吗?

2 个答案:

答案 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