2013-06-20 16 views
5

Eigentlich habe ich Google-Drive-SDK mit meiner iOS-App integriert. Ich kann die angegebene Datei auf Google Drive über google-drive-sdk für iOS hochladen. Zusätzlich möchte ich eine Funktion zur Auswahl eines Ordners aus einem verfügbaren Ordner bereitstellen, in dem der Benutzer diese Datei auf Google Drive hochladen möchte.Auflistung aller Ordner von Google Drive über IOS Google Drive SDK

So habe ich gefunden, wie Sie alle Dateien von Google Drive auflisten, aber nicht finden, wie Sie alle Ordner von Google Drive auflisten.

Ich ging auch durch ganz API reference auf Google Developer-Website, aber keine Lösung darüber gefunden.

Ich hatte irgendwo gefunden, dass die Verwendung von unter Code-Ordner Auflistung kann so versucht werden, aber es hat nicht funktioniert.

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); 
    } 
}]; 

Gibt es also eine Lösung für die Liste der Ordner von Google Drive mit google-drive-sdk?

+0

Hey @cultor Haben Sie die Lösung für dieses. Wenn Sie bekommen, geben Sie bitte die Antwort hier. Ich habe auch das gleiche Problem. Ich muss die Ordner auflisten. – sunil

Antwort

1

Angenommen, dieser Code funktioniert, liegt ein Problem in der Abfrage vor. Mehrere Abfragen sollten durch und kombiniert werden.

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

Weitere Beispiele von Beispielabfragen, werfen Sie einen Blick auf Search for Files in offiziellen Dokumenten. Wenn dieser Code nicht funktioniert, möchten Sie Files.list() mit der obigen Abfrage verwenden. Überprüfen Sie den Link, und es gibt einen Beispielcode für Object-c, das Sie möglicherweise verwenden möchten.

+0

hi, danke für schnelle Antwort. Ich habe versucht, indem Sie "und" hinzufügen (@ "mimeType = 'application/vnd.google-apps.folder' und trashed = false"). Aber es hat trotzdem nicht funktioniert. Und über diesen Link https://developers.google.com/drive/v2/reference/files/list habe ich es bereits durchgegangen, aber es ist nur für die Auflistung aller Dateien, nicht der Ordner. –

+0

Haben Sie das geschafft? –

1

Was sind die Bereiche, die Sie verwenden? stellen Sie sicher, dass Sie verwenden

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

Beispiel:

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]; 
+1

stimme ich zu. Möglicherweise verwenden Sie den Standardbereich kGTLAuthScopeDriveFile, der nur von Ihrer App erstellte Dateien anzeigt. https://developers.google.com/drive/web/scopes – Ted

0

den richtigen Bereich verwenden.

eingeschränkter drive.file-Bereich, der nur den Zugriff auf Dateien ermöglicht, die er erstellt hat oder die der Benutzer damit geöffnet hat.

vollständiger Laufwerksbereich, mit dem die App alle Drive-Dateien des Benutzers verwalten kann.

Es wird dringend empfohlen, den eingeschränkten Umfang nach Möglichkeit anzufordern. Für weitere Informationen über alle verfügbaren Bereiche, überprüfen Sie die Google Drive-SDK-Dokumentation:

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

Verwandte Themen