Вывод списка всех папок Google Drive через IOS Google Drive SDK

На самом деле я интегрировал Google-Drive-SDK с моим приложением IOS. Я могу загружать указанный файл на Google Drive через Google-Drive-SDK для iOS. Кроме того, я хочу предоставить функциональность для выбора папки из доступной папки, в которую пользователь хочет загрузить этот файл на Google Drive.

Итак, я нашел, как вывести список всех файлов на Google Диске, но не смог найти, как вывести список всех папок на Google Диске.

Я также просмотрел всю ссылку на API на сайте Google Developer, но не нашел решения по этому поводу.

Я где-то обнаружил, что с помощью приведенного ниже списка папок с кодом можно сделать это, но он не сработал.

GTLQueryDrive *query = [GTLQueryDrive queryForFilesList];
query.q = @"mimeType='application/vnd.google-apps.folder' and trashed=false";

[self.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket,
                                                          GTLDriveFileList *files,
                                                          NSError *error) {

    if (error == nil) {
        NSLog(@"Array of folder: %@", files.items);
    } else {
        NSLog(@"An error occurred: %@", error);
    }
}];

Так есть ли какое-нибудь решение для получения списка папок с Google Drive с помощью google-drive-sdk?

3 ответа

Предполагая, что этот код работает, в запросе есть проблема. Несколько запросов должны быть объединены и.

query.q = @"mimeType='application/vnd.google-apps.folder' and trashed=false";

Дополнительные примеры примеров запросов приведены в разделе " Поиск файлов" в официальной документации.

Кроме того, в случае, если этот код не работает, вы хотите использовать Files.list() с запросом выше. Проверьте ссылку и приведите пример кода для Object-c, который вы можете использовать.

Какие области вы используете? убедитесь, что вы используете

kGTLAuthScopeDrive = @ " https://www.googleapis.com/auth/drive";

пример:

NSString *scope = kGTLAuthScopeDrive;

GTMOAuth2ViewControllerTouch *authViewController =
[[GTMOAuth2ViewControllerTouch alloc] initWithScope:scope
                                           clientID:kClientId
                                       clientSecret:kClientSecret
                                   keychainItemName:kKeychainItemName
                                           delegate:self
                                   finishedSelector:finishedSelector];

[self presentViewController:authViewController animated:YES completion:nil];

Используйте правильную область.

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

полный объем диска, который позволяет приложению управлять всеми файлами диска пользователя.

Настоятельно рекомендуется запросить ограниченную область, когда это возможно. Подробнее о всех доступных областях читайте в документации по Google Drive SDK:

https://developers.google.com/drive/scopes

Другие вопросы по тегам