Sesi adalah inti dari Picker API, yang menyediakan cara yang aman dan terkontrol bagi pengguna untuk memilih foto dan video dari galeri Google Foto mereka. Panduan ini menguraikan cara membuat, mengelola, dan melakukan polling sesi secara efektif untuk memungkinkan pemilihan foto yang lancar di aplikasi Anda.
Sebelum memulai
- Konfigurasi aplikasi Anda: Aktifkan API dan siapkan autentikasi. Lihat Mengonfigurasi aplikasi Anda untuk mengetahui langkah-langkah yang mendetail.
- Pahami alurnya: Tinjau mulai menggunakan Picker API untuk mengetahui ringkasan seluruh proses pemilihan foto.
- Tinjau cakupan otorisasi yang diperlukan: Bekerja dengan sesi memerlukan cakupan
photospicker.mediaitems.readonly
. Untuk mengetahui informasi selengkapnya tentang cakupan, lihat Cakupan otorisasi.
Siklus proses sesi
Picker API menyediakan metode untuk membuat, mengambil informasi tentang, dan menghapus sesi. Setelah mengautentikasi pengguna, Anda dapat menggunakan sesi untuk mengelola siklus proses pemilihan foto.
- Buat sesi untuk memungkinkan pengguna memilih item media.
- Polling sesi untuk memeriksa kapan pengguna telah selesai memilih item media.
- Mencantumkan dan mengambil item media.
- Bersihkan sesi dengan menghapusnya.
Membuat sesi
Buat sesi agar pengguna Anda dapat memilih foto dengan aman langsung dari aplikasi Google Foto mereka, dan membagikannya kembali ke aplikasi Anda.
sessions.create
membuat sesi baru, menampilkan pickerUri
unik yang dapat Anda tampilkan kepada pengguna. Sesi akan tetap aktif hingga pengguna berhasil memilih item media, atau waktu tunggu sesi habis. Untuk aplikasi berbasis web, Anda dapat menambahkan /autoclose
ke pickerUri
untuk menutup jendela atau tab Google Foto secara otomatis setelah pengguna menyelesaikan pilihannya—lihat Pemilihan foto: apa yang dilihat pengguna untuk mengetahui detailnya.
Batas sesi
Perhatikan batas sesi. Picker API menerapkan batasan pada jumlah sesi yang dapat Anda buat untuk memastikan penggunaan yang bertanggung jawab dan mencegah penyalahgunaan. Dalam kondisi normal, Anda kemungkinan tidak akan mencapai batas ini. Namun, Anda harus melacak dan membersihkan sesi secara proaktif untuk menghindari masalah.
Meminta dan memantau sesi
Setelah sesi dibuat, lakukan polling secara berkala ke endpoint sessions.get
untuk mendapatkan status sesi. Properti mediaItemsSet
dalam respons menampilkan
true
saat pengguna telah menyelesaikan pilihannya.
Pastikan untuk menggunakan polling yang efisien. Respons sessions.get
mencakup objek
pollingConfig
. Gunakan kolom berikut untuk membantu Anda menghindari panggilan yang tidak perlu dan menciptakan pengalaman pengguna yang lancar:
pollInterval
: interval polling yang optimaltimeoutIn
: durasi waktu tunggu
Lihat Contoh alur polling untuk mengetahui detail selengkapnya.
Menghapus dan membersihkan sesi
sessions.delete
menghapus sesi, biasanya digunakan untuk pembersihan setelah pengguna
selesai memilih media atau jika waktu tunggu sesi habis.
Sebaiknya hapus sesi setelah pengguna memilih item media dan aplikasi Anda telah mengambil byte item media.
Contoh alur polling
Berikut adalah contoh pembuatan dan polling sesi. Setelah mengautentikasi pengguna untuk pertama kalinya, buat sesi baru.
- Buat sesi: Panggil
sessions.create
untuk memulai sesi baru dan mendapatkanpickerUri
. - Tampilkan
pickerUri
kepada pengguna: Tampilkan URL atau buat kode QR untuk dipindai pengguna. Baca ringkasan pengalaman pemilihan pengguna. - Polling sesi:
- Gunakan pollInterval yang direkomendasikan dari
pollingConfig
. - Periksa apakah
mediaItemsSet
benar.- Jika
true
, lanjutkan untuk mencantumkan item media yang dipilih. - Jika
false
, terus lakukan polling hinggatimeoutIn
tercapai.
- Jika
- Menangani waktu tunggu dan pembatalan dengan baik.
- Gunakan pollInterval yang direkomendasikan dari
GET https://photoslibrary.googleapis.com/v1/sessions/{sessionId}
Berikut contoh responsnya:
{
"id": string,
"pickerUri": string,
"pollingConfig": {
object (PollingConfig)
},
"mediaItemsSet": boolean
}
Tampilkan pickerUri
kepada pengguna, lalu mulai polling sesi.
Periksa respons untuk hal berikut:
mediaItemsSet
: benar (true) jika pengguna telah selesai memilih item mediapollingConfig.pollInterval
: waktu tunggu yang direkomendasikan sebelum polling berikutnyapollingConfig.timeoutIn
: total waktu untuk menunggu sebelum waktu habis
Jika mediaItemsSet
salah (false) dan timeoutIn
belum tercapai, tunggu
pollInterval
, lalu lakukan polling lagi.
Jika mediaItemsSet
benar, lanjutkan untuk mencantumkan item media yang dipilih.
Jika timeoutIn
tercapai, tangani waktu tunggu dengan baik.