Praktik terbaik

Otorisasi

Semua permintaan ke Google Photos Library API harus diizinkan oleh pengguna yang diautentikasi.

Detail proses otorisasi untuk OAuth 2.0 sedikit berbeda bergantung pada jenis aplikasi apa yang Anda tulis. Proses umum berikut berlaku untuk semua jenis aplikasi:

  1. Bersiaplah untuk proses otorisasi dengan melakukan hal berikut:
    • Daftarkan aplikasi Anda menggunakan Konsol API Google.
    • Aktifkan Library API dan ambil detail OAuth, seperti client ID dan rahasia klien. Untuk informasi selengkapnya, lihat Mulai.
  2. Untuk mengakses data pengguna, aplikasi membuat permintaan ke Google untuk cakupan akses tertentu.
  3. Google menampilkan layar izin kepada pengguna yang meminta mereka untuk memberikan otorisasi aplikasi untuk meminta beberapa data mereka.
  4. Jika pengguna menyetujui, Google akan memberikan token akses ke aplikasi yang akan kedaluwarsa setelah jangka waktu singkat.
  5. Aplikasi membuat permintaan untuk data pengguna, dengan melampirkan token akses terhadap permintaan.
  6. Jika Google menentukan bahwa permintaan dan token tersebut valid, Google akan menampilkan data yang diminta.

Untuk menentukan cakupan yang sesuai dengan aplikasi Anda, lihat Otorisasi cakupan kami.

Proses untuk beberapa jenis aplikasi meliputi langkah-langkah tambahan, seperti menggunakan token refresh untuk memperoleh token akses baru. Untuk informasi terperinci tentang untuk berbagai jenis aplikasi, lihat Menggunakan OAuth 2.0 untuk Mengakses Google Google Cloud API.

Menyimpan ke cache

Selalu perbarui data.

Jika Anda perlu menyimpan media untuk sementara (seperti thumbnail, foto, atau video) Untuk alasan performa, jangan meng-cache-nya lebih dari 60 menit sesuai penggunaan kami kami.

Anda juga tidak boleh menyimpan baseUrls, yang masa berlakunya akan habis setelah sekitar 60 menit.

ID item media dan ID album yang mengidentifikasi konten secara unik di koleksi pengguna dikecualikan dari pembatasan penyimpanan dalam cache. Anda dapat menyimpan ID ini tanpa batas waktu (tunduk kepada kebijakan privasi aplikasi Anda). Gunakan ID item media dan ID album untuk mengambil kembali URL dan data yang dapat diakses menggunakan endpoint yang sesuai. Sebagai informasi selengkapnya, lihat Mendapatkan informasi media item atau Listingan album.

Jika Anda memiliki banyak item media untuk dimuat ulang, mungkin akan lebih efisien untuk menyimpan parameter penelusuran yang menampilkan item media dan kirim ulang kueri untuk memuat ulang layanan otomatis dan data skalabel.

Akses SSL

HTTPS diperlukan untuk semua permintaan layanan web Library API yang menggunakan URL berikut:

https://photoslibrary.googleapis.com/v1/service/output?parameters

Permintaan yang dibuat melalui HTTP ditolak.

Penanganan error

Untuk informasi tentang cara menangani error yang ditampilkan dari API, lihat Cloud Penanganan API error.

Mencoba lagi permintaan yang gagal

Klien harus mencoba lagi pada error 5xx dengan backoff eksponensial seperti yang dijelaskan dalam Backoff eksponensial. Penundaan minimum harus 1 s kecuali jika didokumentasikan sebaliknya.

Untuk error 429, klien dapat mencoba lagi dengan penundaan 30s minimum. Untuk semua lainnya error, percobaan ulang mungkin tidak dapat diterapkan. Pastikan permintaan Anda idempoten dan lihat pesan {i>error<i} sebagai panduan.

Backoff eksponensial

Dalam kasus yang jarang terjadi, mungkin terjadi masalah dalam melayani permintaan Anda.Anda mungkin menerima Kode respons HTTP 4XX atau 5XX, atau koneksi TCP mungkin gagal di suatu tempat antara klien Anda dan server Google. Sering kali, ada baiknya untuk mencoba kembali permintaan. Permintaan tindak lanjut mungkin berhasil jika permintaan asli gagal. Namun, pastikan Anda tidak melakukan loop, berulang kali membuat permintaan ke server Google. Ini berulang dapat membebani jaringan antara klien Anda dan Google dan menyebabkan masalah bagi banyak pihak.

Pendekatan terbaik adalah mencoba ulang dengan meningkatkan waktu tunda antar percobaan. Biasanya, penundaan ditingkatkan dengan faktor perkalian dengan setiap percobaan, sebuah pendekatan yang dikenal sebagai Eksponensial backoff.

Anda juga harus berhati-hati bahwa tidak ada percobaan ulang kode yang lebih tinggi dalam aplikasi rantai panggilan yang menyebabkan permintaan berulang dengan cepat.

Penggunaan Google API yang sopan

Klien API yang tidak dirancang dengan baik dapat menempatkan lebih banyak beban daripada yang diperlukan pada internet dan di server Google. Bagian ini berisi beberapa praktik baik untuk klien API. Mengikuti praktik terbaik ini dapat membantu Anda menghindari aplikasi yang diblokir karena penyalahgunaan API yang tidak disengaja.

Permintaan yang disinkronkan

Sejumlah besar permintaan yang disinkronkan ke API Google dapat terlihat seperti serangan {i>Distributed Denial of Service <i}(DDoS) terhadap infrastruktur Google, dan dan diperlakukan sebagaimana mestinya. Untuk menghindari hal ini, Anda harus memastikan bahwa permintaan API tidak disinkronkan antara klien.

Misalnya, perhatikan aplikasi yang menampilkan waktu di waktu saat ini zona waktu. Aplikasi ini mungkin akan menyetel alarm di sistem operasi klien membangunkannya di awal menit sehingga waktu yang ditampilkan dapat diperbarui. Aplikasi tidak boleh melakukan panggilan API sebagai bagian dari pemrosesan yang terkait dengan alarm tersebut.

Melakukan panggilan API untuk merespons alarm yang sudah diperbaiki adalah hal yang buruk karena menghasilkan Panggilan API disinkronkan ke awal menit, bahkan antara perbedaan perangkat Anda, bukan didistribusikan secara merata dari waktu ke waktu. Desain yang buruk aplikasi yang melakukan hal ini menghasilkan lonjakan traffic pada tingkat enam puluh kali lipat dari biasanya di awal setiap menit.

Sebaliknya, salah satu desain yang mungkin adalah memiliki alarm kedua yang diatur ke waktu yang dipilih. Bila alarm kedua ini dipicu, aplikasi akan melakukan panggilan ke semua API yang dibutuhkan dan menyimpan hasilnya. Untuk memperbarui tampilannya di awal proses aplikasi menggunakan hasil yang disimpan sebelumnya daripada memanggil metode API lagi. Dengan pendekatan ini, panggilan API tersebar dengan rata. Selain itu, panggilan API tidak menunda rendering saat tampilan sedang diupdate.

Selain dari awal menit, waktu sinkronisasi umum lain yang Anda harus berhati-hati untuk tidak menargetkan adalah di awal jam dan awal setiap hari pada tengah malam.