2013-05-13 20 views
6

Mam aplikację w GAE (Python 2.7), a teraz potrzebuję dostępu do Dysku Google, aby wyświetlić (udostępnioną) listę folderów i dokumentów.Jak korzystać z Google Drive API z Google App Engine?

Wyszukiwanie zwykle prowadzi do wskaźników do DrEdit, w tym App Engine and Google Drive API, które zadają to samo pytanie, ale akceptują odpowiedź, z którą nie zgadzam się, ponieważ DrEdit jest przykładową aplikacją dla Google Drive, a nie GAE.

Lista plików z dysku API, co chciałbym, aby móc korzystać z GAE: https://developers.google.com/drive/v2/reference/files/list

+0

"DrEdit to aplikacja internetowa napisana na Google App Engine w języku Python". Co jest z tym nie tak? https://developers.google.com/drive/examples/python –

+0

To pytanie: http://stackoverflow.com/questions/15454708/accessing-google-drive-from-a-google-app-engine-python-app ma komentarz "Dzięki, próbowałem tego." Próbowałem też DrEdit na developers.google.com/drive/examples/python (zajęło mi to wiele godzin pracy, aby zrozumieć, że nie ma to nic wspólnego z moimi wymaganiami). " DrEdit to aplikacja na Dysk Google, tj. Dodająca funkcje do Dysku Google. Chcę tylko przeczytać Dysk z GAE. Ponownie przyjrzę się DrEdit, gdzieś tam jest prawdopodobnie informacja, której potrzebuję ... – cbootle

+1

DrEdit zawiera wszystkie niezbędne informacje o konfiguracji. Jednak, podobnie jak wiele przykładowych aplikacji, jest to dość skomplikowane. Jeśli ktoś natknie się na ten wątek i ma tylko podstawowe okablowanie aplikacji Drive-Api, będzie to bardzo pomocne. – rGil

Odpowiedz

4

Chociaż Google App Engine i Dysk Google są zarówno produkty Google, niestety nie są one bezpośrednio powiązane. Interfejsy API Dysku Google są dostępne w bibliotece google-api-python-client, którą należy zainstalować.

Proces ten można znaleźć na Python Google Drive API Quickstart Guide i podsumowane następująco:

  1. Na stronie Google: Zezwalaj na dostęp do dysku API programu GAE

    • Activate Drive API. Kliknij Przejdź do poświadczenia przycisk, aby kontynuować ...
    • Tworzenie ekranu zgody: Skonfiguruj OAuth Zgoda Ekran jak Google rzuci dziwne błędy, jeśli ten nie został ustanowiony:
      • Click na ekranie zgody OAuth zakładce
      • Wybierz adres email i wprowadź nazwę produktu.
    • Uzyskaj poświadczenia:
      • Kliknij na poświadczenia zakładka
      • Wybierz Dodaj poświadczenia a następnie OAuth 2.0 klient ID. Wybierz rodzaj aplikacji i wprowadź odpowiednie szczegóły. Możesz je później zmienić!
      • Wróć na kartę Dane logowania, pobierz poświadczenia JSON (do końca w prawo w tabeli przycisk pobierania pojawia się tylko po najechaniu myszą w pobliżu). Zmień nazwę na client_secret.json i umieść ją w katalogu głównym. Będziesz potrzebował tego, aby zażądać referencji od użytkowników.
  2. Na swojej stronie: Download the google-api-python-client library, rozpakuj go w katalogu z kodem i uruchomić python setup.py install. Spowoduje to zainstalowanie biblioteki zawierającej wiele interfejsów API produktów Google.

  3. Teraz możesz korzystać z Drive API. Możesz przetestować swój dostęp za pomocą sample code. Przeczytaj to, ponieważ jest to dobry przewodnik do pisania własnego kodu! Jeśli uzyskujesz dostęp do danych użytkownika, będziesz musiał zażądać poświadczeń użytkownika podczas logowania i najprawdopodobniej je przechowywać.Następnie, aby korzystać z interfejsu API, najprostszym sposobem byłoby uzyskać obiekt 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 
    

Powyżej fragment kodu jest modyfikowany sample code.

Podstawowym interfejsem API dla Dysku Google może być found here.

Ta sama ogólna procedura jest wymagana, aby połączyć GAE z innymi interfejsami API produktów Google, np. Kalendarz. Wszystkiego najlepszego pisząc swój program!