2013-06-20 37 views
5

In realtà ho integrato google-drive-sdk con la mia app ios. Posso caricare il file specificato su Google Drive tramite google-drive-sdk per iOS. Inoltre voglio fornire una funzionalità per la scelta di una cartella dalla cartella disponibile in cui l'utente desidera caricare quel file su Google Drive.Elenco di tutte le cartelle di Google Drive tramite IOS Google Drive SDK

Quindi, ho trovato come elencare tutti i file di Google Drive ma non riesco a trovare come elencare tutte le cartelle di Google Drive.

Ho anche verificato l'intero API reference sul sito di Google Developer ma non ho trovato alcuna soluzione al riguardo.

Avevo trovato da qualche parte che l'utilizzo della seguente lista di cartelle di codice può essere fatto in modo da provarlo ma non ha funzionato.

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

Quindi c'è qualche soluzione per ottenere l'elenco di cartelle da Google Drive utilizzando google-drive-sdk?

+0

Hey @cultor hai preso la soluzione per questo. Se si ottiene per favore dare la risposta qui. Sto anche affrontando lo stesso problema. Ho bisogno di elencare le cartelle. – sunil

risposta

1

Supponendo che questo codice funzioni, c'è un problema nella query. È necessario combinare più query con e.

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

Per ulteriori esempi di query di esempio, dare un'occhiata a Search for Files nella documentazione ufficiale.

Inoltre, nel caso in cui questo codice non funzioni, si desidera utilizzare Files.list() con la query sopra. Controlla il link e c'è un codice di esempio per Object-c che potresti voler usare.

+0

ciao, grazie per la rapida risposta. Ho provato aggiungendo "e" (@ "mimeType = 'application/vnd.google-apps.folder' e trashed = false"). Ma ancora non ha funzionato. E su questo link https://developers.google.com/drive/v2/reference/files/list l'ho già passato ma è solo per elencare tutti i file e non le cartelle. –

+0

Sei riuscito a farlo funzionare? –

1

Quali sono gli ambiti che si utilizzano? assicurati di utilizzare

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

esempio:

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

Sono d'accordo. È possibile che si stia utilizzando l'ambito predefinito kGTLAuthScopeDriveFile che mostrerà solo i file creati dall'app. https://developers.google.com/drive/web/scopes – Ted

0

Utilizzare il campo di applicazione corretta.

ambito di file limitato, che consente solo di accedere ai file creati o aperti dall'utente.

ambito dell'azionamento completo che consente all'applicazione di gestire tutti i file di Drive dell'utente.

Si consiglia di richiedere l'ambito limitato quando possibile. Per maggiori dettagli su tutti gli ambiti disponibili, consultare la documentazione di Google Drive SDK:

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