2015-01-28 8 views
5

Próbuję użyć PyDrive, aby uzyskać listę wszystkich plików na moim Dysku Google. Przeczytałem dokumenty i wykonałem wszystkie kroki. Mam zapisane secrets.json klienta, ale nadal otrzymuję następujący błąd. Kod, którego używam, to:PyDrive: Nieprawidłowy plik tajny klienta

from pydrive.auth import GoogleAuth 
from pydrive.drive import GoogleDrive 

gauth = GoogleAuth() 
gauth.LocalWebserverAuth() 
# Creates local webserver and auto handles authentication 

drive = GoogleDrive(gauth) 


file_list = drive.ListFile({'q': "'root' in parents and trashed=false"}).GetList() 
for file1 in file_list: 
    print 'title: %s, id: %s' % (file1['title'], file1['id']) 

Błąd, który otrzymuję, jak to naprawić?

Traceback (most recent call last): 
    File "C:\Users\mydrive\Documents\Python\Google_Drive.py", line 5, in <module> 
    gauth.LocalWebserverAuth() 
    File "build\bdist.win-amd64\egg\pydrive\auth.py", line 67, in _decorated 
    self.GetFlow() 
    File "build\bdist.win-amd64\egg\pydrive\auth.py", line 345, in GetFlow 
    self.LoadClientConfig() 
    File "build\bdist.win-amd64\egg\pydrive\auth.py", line 294, in LoadClientConfig 
    self.LoadClientConfigFile() 
    File "build\bdist.win-amd64\egg\pydrive\auth.py", line 314, in LoadClientConfigFile 
    raise InvalidConfigError('Invalid client secrets file %s' % error) 
InvalidConfigError: Invalid client secrets file File not found: "client_secrets.json" 

Odpowiedz

2

Najpierw przechodzimy do: https://console.developers.google.com/project

następnie przejść swój projekt -> Apis i uwierzytelniania -> poświadczenia. Tutaj możesz pobrać swój client_secrets.json.

Teraz skopiuj ten plik (client_secrets.json) w tym samym katalogu, które realizują swoje .py

+0

Co sprawia, że ​​uważasz, że OP nie zrobił tego poprawnie? –

2

miałem ten sam problem. Powodem, dla którego nie możesz zalogować się tutaj:

InvalidConfigError: Plik Nieprawidłowe tajemnice klienckie nie znaleziono pliku: „client_secrets.json”

Musisz zmienić nazwę pliku z poświadczeń:
client_secret_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.apps .googleusercontent.com.json

do:
client_secrets.json

Cheer s, Tatuś

+0

gdzie jest nazwa pliku poświadczeń –

5

Na podstawie protokołu błędów program nie może znaleźć pliku: "client_secrets.json". Ten plik jest niezbędny, ponieważ pomaga zidentyfikować Twój program w interfejsie API Google.

kroki, aby uzyskać autoryzację dzieje:

  1. żądania Dysku Google dostęp do API za pośrednictwem konsoli Google Cloud

    Kroki określono na https://pythonhosted.org/PyDrive/quickstart.html

    jestem kopiowanie i aktualizowanie z instrukcjami oryginalna strona na wypadek, gdyby strona stała się niedostępna w przyszłości:

    Instrukcje dotyczące uzyskiwania Dysku Google dostęp API

    przejść do Google Developers Console - https://console.developers.google.com i utworzyć nowy projekt

    Click on Włączanie i zarządzać API kliknij Dysk API, a następnie kliknij Włącz API.

    W Menedżerze interfejsów API kliknij Poświadczenia na lewym panelu. Wybierz opcję Dodaj poświadczenia, wybierz opcję OAuth 2.0 ID klienta, następnie Aplikacja internetowa. Może być konieczne skonfigurowanie ekranu zgody, gdzie wymagana część jest nazwą produktu, a resztę można pozostawić pustą.

    W oknie Tworzenie ID klienta z aplikacji sieci Web jako typ wybranej aplikacji, określ Nazwa dla danej aplikacji, umieścić http://localhost:8080 o pochodzeniu JavaScript i http://localhost:8080/ dla przekierowania URI. WAŻNE: Jedna z nich kończy się na /, druga nie.

  2. Pobierz plik client_secrets.json z Konsoli programisty Google

    przejść do Google Developers Console - https://console.developers.google.com i znajdź sekcję używać Google API i kliknij Włączanie i zarządzać API. Wybierz poświadczenia na lewym panelu. Powinieneś zobaczyć listę swoich identyfikatorów klienta OAuth 2.0. Sprawdź tę, którą utworzyłeś w kroku 1, i kliknij przycisk Pobierz JSON (wygląda jak ikona strzałki w dół). Zmień nazwę pobranego pliku na client_secrets.json.

  3. Umieść client_secrets.json do katalogu projektu

    Najlepiej jest umieścić pobrany plik client_secrets.json w tym samym katalogu, co programu Pythona, który ma następującą linię: gauth.LocalWebserverAuth ()

Gdy masz uwierzytelnianie dzieje, polecam użyć kodu z odpowiedzi https://stackoverflow.com/a/24542604/820173 zapisać poświadczenia, dzięki czemu nie trzeba uwierzytelnić każdym uruchomieniu kodu.

Dla bardziej zaawansowanych użytkowników istnieje możliwość utworzenia pliku settings.yaml z zaawansowanymi technikami oszczędzania poświadczeń. Przykłady opisane w plikach testowych do projektu PyDrive: https://github.com/googledrive/PyDrive/tree/master/pydrive/test Chciałbym wspomnieć, że ten zaawansowany materiał nie jest konieczny, aby wszystko przebiegło sprawnie, potrzebne są tylko 3 kroki wyjaśnione w tej odpowiedzi.

+0

Umieszczam go w \ Python27 oraz w katalogu PyDrive, również w tym samym katalogu, w którym wykonuję kod. Ale wciąż otrzymuję InvalidConfigError: nieprawidłowy plik tajny klienta Plik nie znaleziony: "client_secrets.json" – jason

Powiązane problemy