2015-01-28 17 views
5

Tôi đang cố gắng sử dụng PyDrive để lấy danh sách tất cả các tệp trong Google Drive của mình. Tôi đã đọc qua các tài liệu và hoàn thành tất cả các bước. Tôi có khách hàng secret.json lưu lại, nhưng tôi tiếp tục nhận được lỗi sau. Mã tôi đang sử dụng là:PyDrive: Tệp bí mật của khách hàng không hợp lệ

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

Lỗi tôi nhận được là, cách khắc phục sự cố này?

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" 

Trả lời

2

Đầu tiên hãy vào: https://console.developers.google.com/project

sau đó đi dự án của bạn -> Apis và xác thực -> chứng chỉ. Tại đây bạn có thể tải xuống client_secrets.json của mình.

Bây giờ sao chép tập tin này (client_secrets.json) trong cùng thư mục mà bạn đang thực hiện py bạn

+0

Điều gì khiến bạn nghĩ rằng OP đã không thực hiện điều này một cách chính xác? –

2

tôi đã cùng một vấn đề. Lý do tại sao bạn không thể đăng nhập ở đây:

InvalidConfigError: nộp bí mật khách hàng không hợp lệ không tìm thấy tập tin : "client_secrets.json"

Bạn cần thay đổi tên file chứng chỉ của bạn từ:
client_secret_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.apps .googleusercontent.com.json

tới:
client_secrets.json

Cheer s, Daddy

+0

là tên tệp thông tin xác thực –

5

Dựa trên nhật ký lỗi, chương trình của bạn không thể tìm thấy tệp: 'client_secrets.json'. Tệp này là rất cần thiết vì nó giúp xác định chương trình của bạn với API Google.

bước để có được chứng thực đi:

  1. Yêu cầu Google Drive truy cập API thông qua Google Cloud Bảng điều khiển

    bước giải thích tại địa chỉ: https://pythonhosted.org/PyDrive/quickstart.html

    Tôi sao chép và cập nhật các hướng dẫn từ trang gốc trong trường hợp trang web không được cung cấp trong tương lai:

    Hướng dẫn nhận Google Drive truy cập API

    Đến Google Developers Console - https://console.developers.google.com và tạo một dự án mới

    Bấm vào Enable và quản lý API, click vào API Drive, sau đó nhấp vào Bật API.

    Trong Trình quản lý API, nhấp vào Thông tin xác thực trên bảng điều khiển bên trái. Chọn Thêm thông tin đăng nhập, chọn OAuth 2.0 ID khách hàng, sau đó Ứng dụng web. Bạn có thể cần định cấu hình màn hình chấp thuận, trong đó phần bắt buộc là Tên sản phẩm và phần còn lại bạn có thể để trống.

    Trong cửa sổ ID Tạo khách hàng, với ứng dụng Web chọn là loại ứng dụng, chỉ định Tên cho ứng dụng của bạn, đặt http://localhost:8080 cho nguồn gốc javascript và http://localhost:8080/ cho chuyển hướng URI. QUAN TRỌNG: Một trong những kết thúc bằng /, cái kia thì không.

  2. Tải tập tin client_secrets.json từ Google Developers Console

    Đến Google Developers Console - https://console.developers.google.com và tìm đến phần Sử dụng Google API và click vào Enable và quản lý API. Chọn Thông tin xác thực trên bảng điều khiển bên trái. Bạn sẽ thấy danh sách ID ứng dụng OAuth 2.0 của mình. Hãy kiểm tra cái bạn đã tạo ở bước 1 và nhấp vào nút tải xuống JSON (trông giống như biểu tượng mũi tên xuống). Đổi tên tệp đã tải xuống thành client_secrets.json.

  3. Đặt client_secrets.json vào thư mục dự án

    Nó là tốt nhất để đặt các tập tin tải về client_secrets.json trong cùng thư mục với chương trình python của bạn có dòng sau: gauth.LocalWebserverAuth ()

Một khi bạn đã xác thực đi, tôi sẽ khuyên bạn nên sử dụng mã từ câu trả lời https://stackoverflow.com/a/24542604/820173 để lưu các thông tin quan trọng để bạn không cần phải xác nhận mỗi khi bạn chạy mã của bạn.

Đối với người dùng nâng cao hơn, bạn có thể tạo tệp settings.yaml bằng các kỹ thuật tiết kiệm thông tin xác thực nâng cao. Ví dụ được mô tả trong các tệp thử nghiệm cho dự án PyDrive: https://github.com/googledrive/PyDrive/tree/master/pydrive/test Tôi muốn đề cập rằng công cụ nâng cao này không cần thiết để thực hiện mọi thứ, tất cả những gì bạn cần là 3 bước được giải thích trong câu trả lời này.

+0

Tôi đặt nó trong \ Python27 và trong thư mục PyDrive, cũng trong cùng thư mục nơi tôi đang thực thi mã. Nhưng vẫn nhận được InvalidConfigError: Tệp khách hàng bí mật không hợp lệ Tệp không tìm thấy: "client_secrets.json" – jason

Các vấn đề liên quan