Phiên hoạt động là yếu tố cốt lõi của Picker API, cung cấp một cách an toàn và có kiểm soát để người dùng chọn ảnh và video trong thư viện Google Photos của họ. Hướng dẫn này trình bày cách tạo, quản lý và thăm dò ý kiến hiệu quả các phiên để cho phép chọn ảnh liền mạch trong ứng dụng của bạn.
Trước khi bắt đầu
- Định cấu hình ứng dụng: Bật API và thiết lập quy trình xác thực. Hãy xem phần Định cấu hình ứng dụng để biết các bước chi tiết.
- Tìm hiểu quy trình: Xem lại bài viết bắt đầu sử dụng Picker API để biết thông tin tổng quan về toàn bộ quy trình chọn ảnh.
- Xem xét các phạm vi uỷ quyền bắt buộc: Bạn cần có phạm vi
photospicker.mediaitems.readonly
để xử lý các phiên. Để biết thêm thông tin về phạm vi, hãy xem phần Phạm vi uỷ quyền.
Vòng đời của phiên
Picker API cung cấp các phương thức để tạo, truy xuất thông tin về và xoá các phiên. Sau khi xác thực người dùng, bạn có thể sử dụng các phiên để quản lý vòng đời chọn ảnh.
- Tạo phiên để cho phép người dùng chọn các mục nội dung nghe nhìn.
- Khảo sát phiên để kiểm tra thời điểm người dùng hoàn tất việc chọn các mục nội dung nghe nhìn.
- Liệt kê và truy xuất các mục nội dung nghe nhìn.
- Dọn dẹp phiên bằng cách xoá phiên đó.
Tạo phiên
Tạo một phiên để người dùng có thể chọn ảnh một cách an toàn ngay trong ứng dụng Google Photos và chia sẻ ảnh đó trở lại ứng dụng của bạn.
sessions.create
tạo một phiên mới, trả về một pickerUri
duy nhất mà bạn có thể hiển thị cho người dùng. Phiên này vẫn hoạt động cho đến khi người dùng chọn thành công các mục nội dung nghe nhìn hoặc phiên hết thời gian chờ.
Giới hạn phiên
Lưu ý đến các giới hạn phiên. Picker API thực thi các giới hạn về số lượng phiên mà bạn có thể tạo để đảm bảo việc sử dụng có trách nhiệm và ngăn chặn hành vi lạm dụng. Trong trường hợp bình thường, bạn khó có thể đạt đến các giới hạn này. Tuy nhiên, bạn nên theo dõi và dọn dẹp các phiên một cách chủ động để tránh mọi vấn đề.
Khảo sát và theo dõi phiên
Sau khi tạo một phiên, hãy thăm dò ý kiến định kỳ điểm cuối sessions.get
để biết trạng thái của phiên. Thuộc tính mediaItemsSet
trong phản hồi trả về true
khi người dùng đã hoàn tất lựa chọn.
Hãy nhớ sử dụng tính năng thăm dò ý kiến hiệu quả. Phản hồi sessions.get
bao gồm đối tượng pollingConfig
. Hãy sử dụng các trường sau để giúp bạn tránh các lệnh gọi không cần thiết và tạo trải nghiệm mượt mà cho người dùng:
pollInterval
: khoảng thời gian thăm dò ý kiến tối ưutimeoutIn
: thời gian chờ
Hãy xem Luồng thăm dò ý kiến mẫu để biết thêm thông tin chi tiết.
Xoá và dọn dẹp các phiên
sessions.delete
xoá một phiên, thường dùng để dọn dẹp sau khi người dùng chọn xong nội dung nghe nhìn hoặc nếu phiên hết thời gian chờ.
Bạn nên xoá các phiên sau khi người dùng đã chọn các mục nội dung nghe nhìn và ứng dụng của bạn đã truy xuất các byte của mục nội dung nghe nhìn.
Ví dụ về quy trình thăm dò
Đây là ví dụ về cách tạo và thăm dò ý kiến về một phiên. Sau khi xác thực người dùng lần đầu, hãy tạo một phiên mới.
- Tạo phiên: Gọi
sessions.create
để bắt đầu một phiên mới và lấypickerUri
. - Hiển thị
pickerUri
cho người dùng: Hiển thị URL hoặc tạo mã QR để người dùng quét. Đọc thông tin tổng quan về trải nghiệm chọn của người dùng. - Khảo sát phiên:
- Sử dụng pollInterval được đề xuất từ
pollingConfig
. - Kiểm tra xem
mediaItemsSet
có đúng không.- Nếu là
true
, hãy tiếp tục liệt kê các mục nội dung nghe nhìn đã chọn. - Nếu là
false
, hãy tiếp tục thăm dò ý kiến cho đến khi đạt đếntimeoutIn
.
- Nếu là
- Xử lý các trường hợp hết thời gian chờ và huỷ một cách linh hoạt.
- Sử dụng pollInterval được đề xuất từ
GET https://photoslibrary.googleapis.com/v1/sessions/{sessionId}
Sau đây là một ví dụ về phản hồi:
{
"id": string,
"pickerUri": string,
"pollingConfig": {
object (PollingConfig)
},
"mediaItemsSet": boolean
}
Trình bày pickerUri
cho người dùng, sau đó bắt đầu thăm dò ý kiến về phiên.
Kiểm tra phản hồi để xem có những thông tin sau đây không:
mediaItemsSet
: true nếu người dùng đã chọn xong các mục nội dung nghe nhìnpollingConfig.pollInterval
: thời gian chờ đề xuất trước cuộc thăm dò ý kiến tiếp theopollingConfig.timeoutIn
: tổng thời gian chờ trước khi hết thời gian chờ
Nếu mediaItemsSet
là sai và chưa đạt đến timeoutIn
, hãy đợi pollInterval
rồi thăm dò ý kiến lại.
Nếu mediaItemsSet
là true, hãy tiếp tục liệt kê các mục nội dung nghe nhìn đã chọn.
Nếu đạt đến timeoutIn
, hãy xử lý thời gian chờ một cách linh hoạt.