2015-01-28 3 views
5

Я пытаюсь использовать PyDrive для получения списка всех файлов на своем Google Диске. Я прочитал документы и выполнил все шаги. У меня хранится клиент secrets.json, но я продолжаю получать следующую ошибку. Используемый мной код:PyDrive: Неверный файл секретов клиента

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']) 

Ошибка, которую я получаю, как это исправить?

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" 

ответ

2

Сначала идут к: https://console.developers.google.com/project

затем идут ваш проект -> Apis и аутентификации -> Учетные данные. Здесь вы можете скачать client_secrets.json.

Теперь скопируйте этот файл (client_secrets.json) в том же каталоге, что вы выполняете свой .py

+0

Что заставляет вас думать, что ОП не сделал это правильно? –

2

У меня была такая же проблема. Причина, почему вы не можете войти здесь:

InvalidConfigError: файл инвалидные клиента секреты Файл не найден: «client_secrets.json»

Вы должны изменить удостоверении имя файла из:
client_secret_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.apps .googleusercontent.com.json

к:
client_secrets.json

Cheer s, Daddy

+0

где имя файла учетных данных –

5

На основании журнала ошибок ваша программа не может найти файл: 'client_secrets.json'. Этот файл необходим, так как он помогает идентифицировать вашу программу в Google API.

шаги, чтобы получить аутентификации происходит:

  1. запроса Google Drive доступ API через Google Cloud Console

    шаги объяснены на: https://pythonhosted.org/PyDrive/quickstart.html

    я копирую и обновление инструкций от оригинальная страница в случае, если сайт будет недоступен в будущем:

    Инструкции для получения доступа API Google Drive

    Перейти к Google Developers Console - https://console.developers.google.com и создать новый проект

    Нажмите на Включение и управление API,, нажмите на Drive API, а затем нажмите на Включить API.

    В диспетчере API нажмите «Учетные данные» на левой панели. Выберите Добавить учетные данные, выберите OAuth 2.0 ID клиента, затем Веб-приложение. Возможно, вам потребуется настроить экран согласия, где требуемая часть - это имя продукта, а остальное можно оставить пустым.

    В одномерном окне Создание клиента с веб-приложением, выбранным в качестве типа приложения, укажите Имя для вашего приложения, положить http://localhost:8080 для Javascript происхождения и http://localhost:8080/ для перенаправления URI. ВАЖНО: Один из этих концов с /, другой - нет.

  2. Скачать client_secrets.json файл из Google Developers Console

    Перейти к Google Developers Console - https://console.developers.google.com и найти API раздел Использование Google и нажмите на Включить и управлять API-интерфейсы. Выберите Учетные данные на левой панели. Вы должны увидеть список идентификаторов клиента OAuth 2.0. Отключите тот, который вы создали на шаге 1, и нажмите кнопку загрузки JSON (выглядит как значок со стрелкой вниз). Переименуйте загруженный файл в client_secrets.json.

  3. Поместите client_secrets.json в каталог проекта

    Лучше всего поместить загруженный файл client_secrets.json в том же каталоге, что и питона программу, которая имеет следующую строку: gauth.LocalWebserverAuth ()

После того, как вы получили аутентификация происходит, я бы порекомендовал вам использовать код из ответа https://stackoverflow.com/a/24542604/820173, чтобы сохранить учетные данные так, что вам не нужно аутентифицировать каждый раз, когда вы запускаете ваш код.

Для более продвинутых пользователей можно создать файл settings.yaml с расширенными методами экономии учетных данных. Примеры, описанные в тестовых файлах для проекта PyDrive: https://github.com/googledrive/PyDrive/tree/master/pydrive/test Я хотел бы упомянуть, что этот продвинутый материал не нужен, чтобы все было в порядке, все, что вам нужно, - это три шага, объясненные в этом ответе.

+0

Я поместил его в папку \ Python27 и в каталог PyDrive, также в том же каталоге, где я выполняю код. Но все равно получение InvalidConfigError: Недопустимый файл секретов клиента Файл не найден: "client_secrets.json" – jason