2012-04-27 16 views
12

Tôi đang làm việc trên giao diện Google Drive cho Emacs. Khái niệm này là Emacs có thể cung cấp một cách nền tảng bất khả tri để tải, sửa đổi và lưu tài liệu văn bản được lưu trữ trong Google Drive. Tôi đã đăng ký ứng dụng của mình và có thể xác thực với OAuth2 và nhận danh sách tệp với API danh sách tài liệu, nhưng khi tôi cố gắng thực thi Chèn bằng API Google Drive, tôi thấy lỗi:Tại sao tôi nhận được thông báo "Người dùng được xác thực chưa cài đặt ứng dụng có id ứng dụng" khi sử dụng API Google Drive một cách tự nhiên?

"Người dùng đã xác thực chưa cài đặt ứng dụng có id ứng dụng ... "

Đọc thêm, có vẻ như tôi cần xuất bản ứng dụng Emacs của mình trong Cửa hàng Chrome trực tuyến để có quyền truy cập vào API Drive. Điều đó không có ý nghĩa với tôi ... Tôi nhận thấy rằng có một dự án FUSE đang được phát triển cho Google Drive, điều này gợi ý rằng phát triển bản địa là có thể. Tuy nhiên, khi tôi lướt qua mã, tôi không thấy thành phần Cửa hàng Chrome trực tuyến để làm việc.

Tôi đang cố sử dụng sai API, hoặc có lộ trình để thực hiện công việc này có ý nghĩa hơn không?

Trả lời

9

EDIT:

Theo Ali Afshar, của nhóm Google Drive, cài đặt không còn cần thiết để sử dụng API này. Vì vậy, những gì sau có thể không còn có liên quan, nhưng sẽ được để lại cho các mục đích lịch sử.


Vì vậy, trước hết API không hỗ trợ phát triển ứng dụng theo nghĩa là cả hai chúng tôi đều làm điều đó, tôi sẽ không sử dụng từ gốc. Tin tốt là tôi đã thực hiện một số nghiên cứu và Google Drive thực sự chỉ là một thương hiệu lại của Google Documents. Vì vậy, API Google Documents có thể là một lựa chọn tốt cho cùng một mục đích.

Dù sao, đây là các bước để giải quyết lỗi: "Người dùng được xác thực chưa cài đặt ứng dụng có id ứng dụng ..." Lỗi 403, vì mục đích của câu trả lời này. Các bước này giả sử bạn đã thiết lập ứng dụng trong cửa hàng Chrome trực tuyến theo yêu cầu và đã cài đặt ứng dụng đó. Tôi đang làm việc trên máy cục bộ của mình, với dự án của tôi: http://github.com/tom-dignan/gdrive-cli mà tôi đã vượt qua lỗi này, vì vậy tôi nghĩ bạn nên tiếp tục cắm vào phiên bản emacs của bạn, bởi vì tôi nghĩ chúng tôi có thể thực hiện công việc này.

a. Mở Google APIs console.

b. Xác nhận bạn đã bật apis trong "Truy cập API", cả API và SDK cho Google đều phải được bật. Ở đó bạn nhận được bí mật của khách hàng/khóa api của bạn và như vậy. Tôi gần như tích cực bạn đã làm điều này, vì vậy hãy tiếp tục với C. (đây là ở đây cho những người khác có thể đã bỏ lỡ nó)

c. Trong thanh điều hướng bên trái, dưới "Drive SDK", bạn sẽ cần phải làm như sau:

  1. Thêm một "URL Hỗ trợ" (bắt buộc)

  2. Thêm ít nhất một biểu tượng ứng dụng 16x16 nhỏ (bắt buộc)

  3. Add "ID OAuth (Bắt buộc)" dưới ổ Integration (tôi đã chỉ mày mò và điều này có vẻ là lĩnh vực then chốt.)

  4. Thêm "Open URL (requi màu đỏ) URL để mở cho ứng dụng của bạn từ giao diện người dùng google drive."

  5. Kiểm tra off "Nhiều tập tin hỗ trợ"

  6. Thêm một số loại MIME và phần mở rộng tập tin, "text/plain", và txt ví dụ

  7. Thêm phạm vi auth:

    https://www.googleapis.com/auth/userinfo.email

    https://www.googleapis.com/auth/userinfo.profile

Đừng cố gắng thêm phạm vi xác thực cho Google Documents tại đây, vì nó sẽ không hoạt động. Google không muốn chúng tôi sử dụng theo cách đó bởi vì các tệp thúc đẩy ứng dụng tạo nên riêng tư đối với ứng dụng đó. Tích hợp với Google Documents sẽ phải tách biệt.

Bây giờ tôi biết bạn phải suy nghĩ "tại sao tôi phải thêm một số trong số này ..." Đó là vì biểu mẫu tạo ra các trường bắt buộc. Trong tôi, tôi đặt một vài URL trỏ đến các trang HTML tĩnh.

Khi bạn đã thực hiện ở trên, hãy dọn dẹp trạng thái của bạn và cài đặt lại ứng dụng Chrome của bạn. Sau đó thử lại mã của bạn và bạn nên ngừng cung cấp cho bạn 403.

+0

Cảm ơn bạn rất nhiều vì câu trả lời này. Tôi sẽ thử công cụ này tối nay để xem liệu nó có dẫn tôi đến "404" đáng thèm muốn mà bạn nói đến không. =) Một câu hỏi, tuy nhiên. Tôi có hiểu chính xác không, nếu tôi phân phối ứng dụng của mình (có thể qua GitHub), bất kỳ ai muốn sử dụng nó sẽ: (1) cần cài đặt Chrome hoặc Chromium và (2) truy cập Cửa hàng Chrome trực tuyến và cài đặt ứng dụng web vô nghĩa khác để họ có thể sử dụng chế độ Emacs tôi đang viết? –

+0

Đúng, nghe có vẻ đúng. Nó sẽ hữu ích nhất cho các nhà phát triển đang làm việc trên các ứng dụng cửa hàng Chrome của riêng họ. Sau đó, họ có thể sử dụng công cụ của chúng tôi với thông tin đăng nhập của họ để lấy và đặt các tệp để gỡ lỗi, v.v. –

+0

OK ... Tôi không thích câu trả lời nhưng cảm ơn bạn đã dành thời gian giải thích. Tôi sẽ giả mạo với điều này ... –

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