2013-05-13 41 views
6

Ho un'app in GAE (Python 2.7) e ora ho bisogno di accedere a Google Drive per visualizzare un elenco (condiviso) di cartelle e documenti.Come utilizzare l'API di Google Drive da Google App Engine?

La ricerca genera in genere puntatori a DrEdit, incluso App Engine and Google Drive API, che fa la stessa domanda ma accetta una risposta Non sono d'accordo, poiché DrEdit è un'app di esempio per Google Drive, non GAE.

L'elenco dei file dal API Drive è quello che mi piacerebbe essere in grado di utilizzare da GAE: https://developers.google.com/drive/v2/reference/files/list

+0

"DrEdit è un'applicazione Web scritta su Google App Engine in Python". Che cosa c'è che non va? https://developers.google.com/drive/examples/python –

+0

Questa domanda: http://stackoverflow.com/questions/15454708/accessing-google-drive-from-a-google-app-engine-python-app ha il commento "Grazie, ci ho provato, ho anche provato DrEdit su developers.google.com/drive/examples/python (mi ci sono volute ore di lavoro per capire che non aveva nulla a che fare con le mie esigenze)". DrEdit è un'app per Google Drive, ovvero l'aggiunta di funzionalità a Google Drive. Voglio solo leggere Drive da GAE. Guardo di nuovo DrEdit, da qualche parte c'è probabilmente l'informazione che mi serve ... – cbootle

+1

DrEdit contiene tutte le informazioni necessarie sull'installazione. Tuttavia, come molte app di esempio, è piuttosto complesso. Se qualcuno incontra questo thread e ha solo il cablaggio di base di un'app Drive-Api, sarebbe molto utile. – rGil

risposta

4

Anche se Google App Engine e Google Drive sono entrambi prodotti Google, purtroppo non sono direttamente collegati. Le API di Google Drive sono accessibili dalla libreria google-api-python-client, che devi installare.

Il processo può essere trovato alla Python Google Drive API Quickstart Guide, e la forma di sintesi è la seguente:

  1. Da parte di Google: Consenti unità API di accesso per il vostro programma GAE

    • Activate Drive API. Fare clic sul Vai alle credenziali tasto per continuare ...
    • Crea il tuo schermo consenso: Imposta il tuo consenso schermo OAuth come Google lancerà strani errori se questo non è stato impostato:
      • Click consenso sulla schermata OAuth scheda
      • Selezionare un indirizzo e-mail e immettere un nome prodotto.
    • Get credenziali:
      • Cliccando il Credenziali scheda
      • Selezionare aggiungere le credenziali e poi OAuth 2.0 client ID. Scegli il tipo di applicazione e inserisci i dettagli pertinenti. Puoi cambiarli più tardi!
      • Nella scheda Credenziali, scaricare le credenziali JSON (completamente a destra nella tabella, il pulsante di download viene visualizzato solo quando si passa con il mouse su di esso). Rinominarlo client_secret.json e posizionarlo nella directory del codice radice. Sarà necessario per richiedere credenziali dagli utenti.
  2. Dalla vostra parte: Download the google-api-python-client library, decomprimere nella directory di codice ed eseguire python setup.py install. Questo installerà la libreria che contiene molte API del prodotto Google.

  3. Ora sei pronto per utilizzare l'API di Drive. Puoi verificare il tuo accesso utilizzando sample code. Leggilo perché è una buona guida per scrivere il tuo codice! Se si accede ai dati dell'utente, sarà necessario richiedere le credenziali dell'utente quando accedono e molto probabilmente li memorizzano.Quindi, per utilizzare l'API, il modo più semplice sarebbe quella di ottenere l'oggetto service:

    import httplib2 
    from apiclient import discovery 
    
    credentials = get_credentials() #Your function to request/access stored credentials 
    #Authorise access to Drive using the user's credentials 
    http = credentials.authorise(httplib2.Http()) 
    #The service object is the gateway to your API functions 
    service = discovery.build('drive', 'v2', http=http) 
    
    #Run your requests using the service object. e.g. list first 10 files: 
    results = service.files().list(maxResults=10).execute() 
    # ... etc ... Do something with results 
    

Sopra frammento di codice viene modificato da sample code.

L'API di riferimento per Google Drive può essere found here.

La stessa procedura generale è necessaria per collegare GAE ad altre API di prodotti Google, ad es. Calendario. Tutto il meglio per scrivere il tuo programma!