Tài liệu này giải thích cách tích hợp Google Picker vào các ứng dụng dành cho máy tính và thiết bị di động bằng Google Picker API.
Google Picker API là một cách để cho phép người dùng chọn hoặc tải tệp trên Google Drive lên. Người dùng có thể cấp quyền cho ứng dụng dành cho máy tính, thiết bị di động hoặc web của bạn để truy cập vào dữ liệu trên Drive của họ, cung cấp một cách an toàn và được uỷ quyền để tương tác với các tệp của họ.
Tính năng
Google Picker có một số tính năng:
- Giao diện người dùng tương tự như Google Drive UI.
- Một số chế độ xem cho thấy bản xem trước và hình thu nhỏ của các tệp trên Drive.
- Các chế độ xem được lọc trước chỉ cho thấy các loại tệp cụ thể (như tệp PDF hoặc hình ảnh) hoặc một số thư mục nhất định.
- Chuyển hướng đến Google Picker trong một thẻ mới trong trình duyệt mặc định của người dùng. Để mở Google Picker API trong một trang ứng dụng, hãy sử dụng Google Picker API cho ứng dụng web thay thế.
Xin lưu ý rằng mặc dù bạn có thể chọn và tải tệp lên bằng Google Picker, nhưng công cụ này không cho phép người dùng sắp xếp, di chuyển hoặc sao chép tệp từ thư mục này sang thư mục khác. Để quản lý tệp, bạn phải sử dụng Google Drive API hoặc giao diện người dùng Drive.
Điều kiện tiên quyết
Các ứng dụng sử dụng Google Picker phải tuân thủ mọi Điều khoản dịch vụ hiện hành. Quan trọng nhất là bạn phải xác định chính xác danh tính của mình trong các yêu cầu.
Bạn cũng phải có một dự án trên Google Cloud.
Thiết lập môi trường
Để bắt đầu sử dụng Google Picker API, bạn phải thiết lập môi trường của mình.
Bật API
Trước khi sử dụng API của Google, bạn cần bật các API đó trong một dự án trên Google Cloud. Bạn có thể bật một hoặc nhiều API trong một dự án trên Google Cloud.Trong bảng điều khiển Google Cloud, hãy bật Google Picker API.
Thiết lập tính năng xác thực và uỷ quyền
Để xác thực người dùng cuối và truy cập vào dữ liệu người dùng trong ứng dụng của mình, bạn cần tạo một hoặc nhiều Mã ứng dụng khách OAuth 2.0. Mã ứng dụng khách được dùng để xác định một ứng dụng duy nhất cho các máy chủ OAuth của Google. Nếu ứng dụng của bạn chạy trên nhiều nền tảng, bạn phải tạo một mã ứng dụng khách riêng cho mỗi nền tảng.Uỷ quyền thông tin đăng nhập cho một ứng dụng dành cho máy tính
Để tạo Mã ứng dụng khách OAuth 2.0, hãy làm theo các bước sau:
- Trong Google Cloud Console, hãy chuyển đến Trình đơn > Nền tảng xác thực của Google > Ứng dụng.
- Nhấp vào Tạo ứng dụng.
- Nhấp vào Loại ứng dụng > Ứng dụng dành cho máy tính.
- Trong trường Name (Tên), hãy nhập tên cho thông tin đăng nhập. Tên này chỉ xuất hiện trong Google Cloud Console.
- Nhấp vào Tạo.
Thông tin xác thực mới tạo sẽ xuất hiện trong phần "Mã ứng dụng khách OAuth 2.0".
Để các ứng dụng được uỷ quyền truy cập vào các tệp đã được cấp quyền trước đó, bạn phải làm theo các bước sau:
Bạn phải lấy mã thông báo OAuth 2.0 có phạm vi
drive.file,drivehoặcdrive.readonlytheo các hướng dẫn sau: Sử dụng OAuth 2.0 để truy cập vào các API của Google. Để biết thêm thông tin về phạm vi, hãy xem Chọn phạm vi Google Drive API scopes.Truyền mã thông báo OAuth 2.0 đến Drive API để đọc và sửa đổi các tệp mà người dùng đã cấp quyền truy cập trước đó.
Uỷ quyền thông tin đăng nhập cho ứng dụng di động
Để tạo Mã ứng dụng khách OAuth 2.0, hãy làm theo các bước trong phần Uỷ quyền thông tin đăng nhập cho một ứng dụng di động.
Uỷ quyền thông tin đăng nhập cho ứng dụng web
Để tạo Mã ứng dụng khách OAuth 2.0, hãy làm theo các bước trong phần Uỷ quyền thông tin đăng nhập cho một ứng dụng web.
Hiển thị Google Picker
Google Picker API cho ứng dụng dành cho máy tính và thiết bị di động sẽ chuyển hướng đến Google Picker trong một thẻ mới trong trình duyệt mặc định của người dùng. Sau khi người dùng cấp quyền truy cập và chọn các tệp có liên quan, Google Picker sẽ quay lại ứng dụng gọi thông qua URL gọi lại.
-
Xác thực ứng dụng của bạn bằng cách kích hoạt Google Picker.
-
Đăng nhập bằng Google và cấp các quyền được yêu cầu.
-
Duyệt các tệp trên Google Drive trong Google Picker rồi chọn mục bạn muốn.
-
Xác nhận lựa chọn của bạn rồi nhấn vào Chèn để thêm tệp vào ứng dụng.
Tích hợp Google Picker vào ứng dụng
Để cho phép người dùng cấp quyền truy cập vào các tệp khác hoặc chọn tệp để sử dụng trong quy trình ứng dụng, hãy làm theo các bước sau:
Yêu cầu quyền truy cập vào phạm vi
drive.fileđể mở trang truy cập OAuth 2.0 trong một thẻ trình duyệt mới theo các hướng dẫn sau: Sử dụng OAuth 2.0 để truy cập vào các API của Google. Để biết thêm thông tin về phạm vi, hãy xem Chọn phạm vi Google Drive API scopes.Xin lưu ý rằng chỉ phạm vi
drive.fileđược phép cho các ứng dụng này và không thể kết hợp với bất kỳ phạm vi nào khác.URL cho thẻ trình duyệt mới chấp nhận tất cả các tham số chuỗi truy vấn OAuth tiêu chuẩn.
Bạn phải thêm các tham số URL
promptvàtrigger_onepickvào yêu cầu URL uỷ quyền OAuth 2.0. Ngoài ra, bạn cũng có thể tuỳ chỉnh Google Picker bằng một số tham số khác:Tham số Mô tả Trạng thái prompt=consentLời nhắc về quyền truy cập vào tệp. Bắt buộc trigger_onepick=trueBật Google Picker. Bắt buộc allow_multiple=trueNếu đúng, hãy cho phép người dùng chọn nhiều tệp. Không bắt buộc mimetypes=MIMETYPESDanh sách các loại MIME được phân tách bằng dấu phẩy để lọc kết quả tìm kiếm. Nếu không được đặt, các tệp cho tất cả các loại MIME sẽ xuất hiện trong chế độ xem. Không bắt buộc file_ids=FILE_IDSDanh sách các mã tệp được phân tách bằng dấu phẩy để lọc kết quả tìm kiếm. Nếu không được đặt, tất cả các tệp sẽ xuất hiện trong chế độ xem. Không bắt buộc allow_folder_selection=trueNếu đúng, hãy cho phép người dùng chọn cả thư mục. Không bắt buộc Mẫu sau đây cho thấy yêu cầu URL uỷ quyền OAuth 2.0:
https://accounts.google.com/o/oauth2/v2/auth? \ client_id=CLIENT_ID \ &scope=https://www.googleapis.com/auth/drive.file \ &redirect_uri=REDIRECT_URI \ &response_type=code \ &access_type=offline \ &prompt=consent \ &trigger_onepick=trueThay thế nội dung sau:
CLIENT_ID: Mã ứng dụng khách của ứng dụng.REDIRECT_URI: Nơi máy chủ uỷ quyền chuyển hướng trình duyệt của người dùng sau khi xác thực thành công. Ví dụ:https://www.cymbalgroup.com/oauth2callback.redirect_uriđược chỉ định phải là một URL HTTPS công khai. Nếu bạn muốn sử dụng giao thức tuỳ chỉnh hoặc URL localhost choredirect_uri, thì bạn phải sử dụng một URL HTTPS công khai, sau đó chuyển hướng đến giao thức tuỳ chỉnh hoặc URL localhost.
Sau khi người dùng cấp quyền truy cập và chọn các tệp có liên quan, OAuth sẽ chuyển hướng đến
redirect_uriđược chỉ định trong yêu cầu với các tham số URL sau được thêm vào:picked_file_ids: Nếu người dùng cấp quyền truy cập và chọn tệp, thì đây là danh sách các mã tệp đã chọn được phân tách bằng dấu phẩy.code: Mã truy cập hoặc mã truy cập dựa trên tham sốresponse_typeđược đặt trong yêu cầu. Tham số này bao gồm một mã uỷ quyền mới authorization code.scope: (Các) phạm vi có trong yêu cầu.error: Nếu người dùng huỷ yêu cầu trong quy trình đồng ý, thì một lỗi sẽ xuất hiện.
Mẫu sau đây cho thấy phản hồi URL uỷ quyền OAuth 2.0:
https://REDIRECT_URI?picked_file_ids=PICKED_FILE_IDS&code=CODE&scope=SCOPESCác ứng dụng phải đổi mã uỷ quyền từ bước 3 để lấy mã thông báo OAuth 2.0 mới. Để biết thêm thông tin, hãy xem bài viết Đổi mã uỷ quyền để lấy mã làm mới và mã truy cập tokens.
Sau đó, các ứng dụng có thể sử dụng mã tệp từ tham số URL ở bước 3 và mã thông báo OAuth 2.0 nhận được ở bước 4 để gọi Drive API. Để biết thêm thông tin, hãy xem bài viết Tổng quan về Google Drive API overview.
Sử dụng Google Picker với ứng dụng Android
Bạn cũng có thể sử dụng Google Picker trong các ứng dụng di động Android.
Uỷ quyền thông tin đăng nhập cho một ứng dụng di động
Để sử dụng Google Picker trong ứng dụng Android, bạn cần uỷ quyền cho người dùng bằng OAuth 2.0, tương tự như các ứng dụng dành cho máy tính. Để biết thông tin chi tiết về tính năng xác thực trên Android, hãy xem bài viết Uỷ quyền truy cập vào dữ liệu người dùng của Google.
Để hiển thị Google Picker trong quá trình uỷ quyền, hãy tạo
AuthorizationRequest
và sử dụng tham số tài nguyên PICKER_OAUTH_TRIGGER trên đối tượng
AuthorizationRequest.ResourceParameter.
Khi tạo AuthorizationRequest:
Sử dụng phạm vi
drive.file.Gọi
setOptOutIncludingGrantedScopesđểtrueđể đảm bảo mã thông báo được trả về chỉ dành cho phạm vidrive.filevà không dành cho bất kỳ phạm vi nào đã được cấp trước đó.Đặt trường
AuthorizationRequest.PromptthànhCONSENTđể nhắc người dùng đồng ý ngay cả khi họ đã đồng ý trước đó.Bạn có thể tuỳ ý sử dụng toán tử bitmap "OR" (
|) để đặt trườngAuthorizationRequest.PromptthànhSELECT_ACCOUNTnhằm cho phép người dùng chọn một tài khoản trước khi lời nhắc về sự đồng ý xuất hiện.
Gọi Google Picker
Tương tự như các ứng dụng dành cho máy tính, bạn có thể tuỳ chỉnh Google Picker bằng một số tham số không bắt buộc:
PICKER_ALLOW_MULTIPLE: Cho phép người dùng chọn nhiều tệp.PICKER_MIMETYPES: Chấp nhận danh sách các loại MIME được phân tách bằng dấu phẩy để lọc kết quả tìm kiếm. Nếu không được đặt, các tệp cho tất cả các loại MIME sẽ xuất hiện trong chế độ xem.PICKER_FILE_IDS: Chấp nhận danh sách các mã tệp được phân tách bằng dấu phẩy để lọc kết quả tìm kiếm. Nếu không được đặt, tất cả các tệp sẽ xuất hiện trong chế độ xem.PICKER_ALLOW_FOLDER_SELECTION: Cho phép người dùng chọn cả thư mục.
Để biết thêm thông tin về các tham số không bắt buộc trong ứng dụng dành cho máy tính, hãy xem phần Hiển thị Google Picker.
Sau khi người dùng cấp quyền truy cập và chọn các tệp có liên quan, đối tượng
getTokenResponseParams
của tài nguyên
AuthorizationResult
sẽ được trả về. Nếu người dùng cấp quyền truy cập, đối tượng này sẽ chứa giá trị picked_file_ids, là danh sách các mã tệp đã chọn được phân tách bằng dấu phẩy.