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

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.

    Bật 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:

  1. 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.

    Chuyển đến mục Ứng dụng

  2. Nhấp vào Tạo ứng dụng.
  3. Nhấp vào Loại ứng dụng > Ứng dụng dành cho máy tính.
  4. 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.
  5. 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:

  1. Bạn phải lấy mã thông báo OAuth 2.0 có phạm vi drive.file, drive hoặc drive.readonly 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.

  2. 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.

  • Màn hình xác thực giao diện người dùng của Google Picker

    Xác thực ứng dụng của bạn bằng cách kích hoạt Google Picker.

  • Hộp thoại đăng nhập bằng Google và hộp thoại quyền

    Đăng nhập bằng Google và cấp các quyền được yêu cầu.

  • Giao diện chọn tệp trên Google Drive trong Bộ chọn

    Duyệt các tệp trên Google Drive trong Google Picker rồi chọn mục bạn muốn.

  • Màn hình xác nhận chèn tệp có nút Chè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:

  1. 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.

  2. 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 prompttrigger_onepick và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=consent Lời nhắc về quyền truy cập vào tệp. Bắt buộc
    trigger_onepick=true Bật Google Picker. Bắt buộc
    allow_multiple=true Nếu đúng, hãy cho phép người dùng chọn nhiều tệp. Không bắt buộc
    mimetypes=MIMETYPES 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. Không bắt buộc
    file_ids=FILE_IDS 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. Không bắt buộc
    allow_folder_selection=true Nế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=true
    

    Thay 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 cho redirect_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.

  3. 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=SCOPES
    
  4. Cá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.

  5. 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 vi drive.file và không dành cho bất kỳ phạm vi nào đã được cấp trước đó.

  • Đặt trường AuthorizationRequest.Prompt thành CONSENT để 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ường AuthorizationRequest.Prompt thành SELECT_ACCOUNT nhằ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.