Tài liệu này giải thích cách tích hợp Google Picker vào ứ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 lên Google Drive. 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 ứng dụng web của bạn truy cập vào dữ liệu của họ trên Drive, mang đến một cách thức 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
Bộ chọn của Google có một số tính năng:
- Giao diện người dùng tương tự như Google Drive.
- 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.
- Chế độ xem được lọc trước chỉ hiển thị các loại tệp cụ thể (như PDF hoặc hình ảnh) hoặc một số thư mục.
- Một lệ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.
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 API Google Drive 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ủ tất cả Đ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 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 API Console, hãy chuyển đến phần Trình đơn > Nền tảng Google Auth > Ứ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 API 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 thực hiện 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 phần Chọn phạm vi API Google Drive.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 xác thực cho một ứng dụng di động.
Uỷ quyền thông tin đăng nhập cho ứng dụng web của bạn
Để 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 xác thực 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.
Để Google Picker API mở trong một trang ứng dụng, hãy sử dụng Google Picker API cho ứng dụng web. Để biết thêm thông tin, hãy xem bài viết Tích hợp Google Picker vào ứng dụng web.
Để 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 của ứ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ề các phạm vi, hãy xem bài viết Chọn phạm vi API Google Drive.Xin lưu ý rằng chỉ có phạm vi
drive.fileđược phép dùng cho các ứng dụng này và bạn không thể kết hợp phạm vi này 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ả 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. Nếu muốn, 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=consentNhắc cấp 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, 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 bạn không đặt, thì các tệp thuộc mọi loại MIME sẽ xuất hiện trong khung hiển thị. Không bắt buộc file_ids=FILE_IDSDanh sách 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 bạn không đặ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, 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 một 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 muốn sử dụng giao thức tuỳ chỉnh hoặc URL localhost choredirect_uri, bạn phải sử dụng 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 mã nhận dạng tệp đã chọn, phân tách bằng dấu phẩy.code: Mã thông báo truy cập hoặc mã truy cập dựa trên thông 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.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ì sẽ có lỗi 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 ở 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 Trao đổi mã uỷ quyền để lấy mã làm mới và mã truy cập.
Sau đó, các ứng dụng có thể sử dụng mã nhận dạng tệp từ tham số URL ở bước 3 và mã thông báo OAuth 2.0 thu được ở bước 4 để gọi API Drive. Để biết thêm thông tin, hãy xem bài viết Tổng quan về API Google Drive.
Sử dụng Google Picker với các ứng dụng Android
Bạn cũng có thể 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ư ứng dụng dành cho máy tính. Để biết thông tin chi tiết về quy trình 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 trên Google.
Để hiển thị Google Picker trong quá trình uỷ quyền, hãy tạo một 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đếntrueđể đảm bảo mã thông báo được trả về chỉ dành cho phạm vidrive.filechứ 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ũng có thể sử dụng toán tử "OR" (
|) bitmap (nếu muốn) để đặ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 đồ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 bạn không đặt, thì các tệp thuộc mọi loại MIME sẽ xuất hiện trong khung hiển thị.PICKER_FILE_IDS: Chấp nhận danh sách mã nhận dạng tệp được phân tách bằng dấu phẩy để lọc kết quả tìm kiếm. Nếu bạn không đặ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 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, thì đối tượng này sẽ chứa giá trị picked_file_ids, là danh sách mã nhận dạng tệp được chọn, phân tách bằng dấu phẩy.