Загрузка файла с Google Диска с помощью iOS SDK

Я пытаюсь загрузить файл с Google Диска с помощью SDK, предоставленного для iOS. Но это дает мне эту ошибку:

Домен ошибки=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);
    }
}];

Однако я могу перечислить все файлы, а также дважды проверил идентификатор пакета.

Любое предложение, что мне не хватает?


person Rohitax Rajguru    schedule 26.05.2016    source источник


Ответы (2)


Добавьте параметр ключа (ключи API для iOS) в URL-адрес, затем попробуйте следующий код:

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);
    }
}];
person Suraj Sukale    schedule 27.05.2016
comment
Это дает мне эту ошибку: Произошла ошибка: Error Domain=com.google.HTTPStatus Code=401 (null) Немного отличается от приведенного выше. - person Rohitax Rajguru; 31.05.2016
comment
значит.... Неверный заголовок авторизации. Используемый токен доступа просрочен или недействителен....... см. это.. developers.google.com/drive/v3/web/ - person Suraj Sukale; 31.05.2016

Я пробовал успешно, но не использую следующий код. NSString *url = [NSString stringWithFormat:@"https://www.googleapis.com/drive/v3/files/%@?alt=media", file.identifier]; Я использую file.webContentLink.

person Andrew Lai    schedule 27.05.2016
comment
file.webContentLink дает мне ноль. - person Rohitax Rajguru; 31.05.2016