Để định cấu hình OAuth cho ứng dụng, bạn thiết lập quy trình làm việc OAuth và bật phạm vi OAuth của API Di chuyển dữ liệu.
Thiết lập quy trình làm việc OAuth
Để thiết lập quy trình OAuth cho ứng dụng, hãy làm theo các bước cơ bản trong tài liệu về Google Identity.
Hầu hết các nhà phát triển đều sử dụng luồng Ứng dụng web phía máy chủ để lấy sự đồng ý OAuth, nhưng bạn cũng có thể sử dụng luồng Ứng dụng web JavaScript hoặc luồng Ứng dụng dành cho thiết bị di động và máy tính.
Phạm vi OAuth của API Di chuyển dữ liệu
Khi bạn định cấu hình ứng dụng Data Portability API cho OAuth, hãy bật các phạm vi OAuth của Data Portability API có liên quan đến ứng dụng của bạn. Một số phạm vi là sensitive
và restricted
và phải tuân thủ các yêu cầu bổ sung.
Khi bạn thêm các phạm vi API Di chuyển dữ liệu vào luồng OAuth, có thể có trường hợp người dùng đồng ý với một số nhưng không phải tất cả các phạm vi. Ứng dụng của bạn phải xử lý được các trường hợp này bằng cách:
- Cho phép xuất một phần dữ liệu
- Thông báo cho người dùng rằng họ chưa chọn tất cả các phạm vi cần thiết (và không thành công một cách linh hoạt)
- Yêu cầu người dùng đồng ý về các quyền còn lại
Xin lưu ý rằng sự đồng ý của người dùng cho phép bạn xuất một lần dữ liệu cho sự đồng ý cụ thể đó. Để tải lại dữ liệu, bạn cần có sự đồng ý mới của người dùng.
Bạn cũng cần lưu ý rằng trong quy trình OAuth, ứng dụng của bạn không biết Tài khoản Google nào đã được dùng để đồng ý. Mã thông báo OAuth mà ứng dụng của bạn nhận được là mờ.
Nếu bạn đang tìm thông tin về cách người dùng chia sẻ dữ liệu, hãy xem bài viết Chia sẻ bản sao dữ liệu của bạn với bên thứ ba.
Hạn chế về phạm vi
Phần này trình bày các quy định hạn chế trong phạm vi dẫn đến lỗi.
Phạm vi kết hợp
Bạn không thể kết hợp các yêu cầu về phạm vi API Di chuyển dữ liệu (chẳng hạn như https://www.googleapis.com/auth/dataportability.*) với các phạm vi khác (chẳng hạn như https://www.googleapis.com/auth/userinfo.email). Sau đây là ví dụ về một yêu cầu không hợp lệ, trong đó phần bị hạn chế được in đậm:
https://accounts.google.com/o/oauth2/v2/auth?
client_id=client_id&
redirect_uri=redirect_uri&
response_type=token&
scope=https://www.googleapis.com/auth/dataportability.myactivity.search+https://www.googleapis.com/auth/userinfo.email&
include_granted_scopes=false
Phạm vi đã cấp trước đó
Bạn không bao giờ được đặt include_granted_scopes=true
khi yêu cầu phạm vi DPAPI.
Sau đây là ví dụ về một yêu cầu không hợp lệ, trong đó phần bị hạn chế được in đậm:
https://accounts.google.com/o/oauth2/v2/auth?
client_id=client_id&
redirect_uri=redirect_uri&
response_type=token&
scope=https://www.googleapis.com/auth/dataportability.myactivity.search&
include_granted_scopes=true
Danh mục phạm vi
Để biết danh sách tất cả phạm vi OAuth mà Data Portability API hỗ trợ và các danh mục của các phạm vi đó, hãy xem phần Các phạm vi OAuth hiện có. Để biết danh sách tất cả các nhóm tài nguyên và phạm vi OAuth mà một dịch vụ cụ thể hỗ trợ, hãy xem trang tham khảo giản đồ cho dịch vụ đó.