2012-04-07 12 views
5

Utilizzando l'API di Google Document, sto provando a creare nuovi documenti e a fornire un elenco di tutti i documenti correnti all'interno di una cartella specifica nel mio documento Google. Sto iniziando con lo sviluppo di python, quindi sono ancora un po 'ruvido intorno ai bordi.API di Google Documenti con Python

Le cose che sto cercando di fare:

  1. Creare una raccolta (o cartella) con il nome di [Nome cartella] solo se tale nome non esiste ancora
  2. creare un documento interno [Nome cartella]
  3. da solo [Nome cartella] ottenere un elenco di documenti con i link ai documenti stessi

credo che sto usando Google documenti AP Io 3.0 e sto usando l'helper gdata-2.0.16 per python.

Codice finora:

 

    import gdata.docs.data 
    import gdata.docs.client 

    class SampleConfig(object): 
     APP_NAME = 'GDataDocumentsListAPISample-v1.0' 
     DEBUG = False 

    client = gdata.docs.client.DocsClient() 
    client.ClientLogin('[email_address]','[password]',source=SampleConfig.APP_NAME) 

    col = gdata.docs.data.Resource(type='folder', title='Folder Name') 
    col = client.CreateResource(col) 

    doc = gdata.docs.data.Resource(type='document', title='I did this') 
    doc = client.CreateResource(doc, collection=col) 

Quindi, d'ora in poi alle domande: dove sono io irrimediabilmente bloccato:

  1. Come faccio a verificare se [Nome cartella] esiste?
  2. Come recuperare il contenuto di SOLO [Nome cartella]?
  3. Come posso ottenere i collegamenti assoluti a tutti i documenti che creo in questa cartella?

So che sono a miglia di distanza dal completamento qui, ma qualsiasi aiuto o consiglio che potresti dare sarebbe fantastico.

Grazie in anticipo!

risposta

3

You can query for a folder or document. Una volta che hai la cartella puoi elencarne il contenuto. Ecco un esempio con la libreria Python:

# Create a query matching exactly a title, and include collections 
q = gdata.docs.client.DocsQuery(
    title='EFD', 
    title_exact='true', 
    show_collections='true' 
) 

# Execute the query and get the first entry (if there are name clashes with 
# other folders or files, you will have to handle this). 
folder = client.GetResources(q=q).entry[0] 

# Get the resources in the folder 
contents = client.GetResources(uri=folder.content.src) 

# Print out the title and the absolute link 
for entry in contents.entry: 
    print entry.title.text, entry.GetSelfLink().href 

uscita

My posted doc https://docs.google.com/... 
subtestcoll2 https://docs.google.com/... 
guestimates_1 https://docs.google.com/... 
phase 2 delivery plan - draft https://docs.google.com/... 
Meeting agenda June 09 https://docs.google.com/... 
Phase 2 spec for Graeme 2 March 2009 https://docs.google.com/... 
EFD Meeting 2nd June https://docs.google.com/... 
+0

Grazie per i dettagli nella vostra risposta. Lo apprezzo davvero e penso che sto iniziando a far funzionare il mio basandomi sul tuo esempio. Tuttavia entry.GetSelfLink(). Href mi fornisce un collegamento nel formato di: https: //docs.google.com/feeds/default/private/full/folder% .... Che, se utilizzato in un browser, get's "URI richiesta non valida" – user791793

Problemi correlati