Menjaga sinkronisasi klien dengan Gmail penting untuk sebagian besar skenario aplikasi. Ada dua skenario sinkronisasi secara keseluruhan: sinkronisasi penuh dan sinkronisasi sebagian. Sinkronisasi penuh diperlukan saat pertama kali klien Anda terhubung ke Gmail dan dalam beberapa skenario langka lainnya. Jika klien Anda baru saja disinkronkan, sinkronisasi parsial adalah alternatif yang lebih ringan daripada sinkronisasi penuh. Anda juga dapat menggunakan notifikasi push untuk memicu sinkronisasi parsial secara real-time dan hanya jika diperlukan, sehingga menghindari polling yang tidak perlu.
Daftar Isi
Sinkronisasi penuh
Saat aplikasi Anda terhubung ke Gmail untuk pertama kalinya, atau jika sinkronisasi parsial tidak tersedia, Anda harus melakukan sinkronisasi penuh. Dalam operasi sinkronisasi penuh, aplikasi Anda harus mengambil dan menyimpan sebanyak mungkin pesan atau rangkaian pesan terbaru yang diperlukan untuk tujuan Anda. Misalnya, jika aplikasi Anda menampilkan daftar pesan terbaru, sebaiknya ambil dan cache cukup banyak pesan untuk memungkinkan antarmuka yang responsif jika pengguna men-scroll melewati beberapa pesan pertama yang ditampilkan. Prosedur umum untuk melakukan operasi sinkronisasi penuh adalah sebagai berikut:
- Panggil
messages.list
untuk mengambil ID pesan halaman pertama. - Buat permintaan batch dari
permintaan
messages.get
untuk setiap pesan yang ditampilkan oleh permintaan daftar. Jika aplikasi Anda menampilkan isi pesan, Anda harus menggunakanformat=FULL
atauformat=RAW
saat pertama kali aplikasi Anda mengambil pesan dan menyimpan hasilnya dalam cache untuk menghindari operasi pengambilan tambahan. Jika Anda mengambil pesan yang sebelumnya di-cache, Anda harus menggunakanformat=MINIMAL
untuk mengurangi ukuran respons karena hanyalabelIds
yang dapat berubah. - Gabungkan pembaruan ke dalam hasil yang di-cache. Aplikasi Anda harus menyimpan
historyId
dari pesan terbaru (pesan pertama dalam responslist
) untuk sinkronisasi parsial di masa mendatang.
Sinkronisasi sebagian
Jika aplikasi Anda baru-baru ini disinkronkan, Anda dapat melakukan sinkronisasi
sebagian menggunakan metode history.list
untuk menampilkan semua catatan histori yang lebih baru dari startHistoryId
yang Anda tentukan
dalam permintaan Anda. Catatan histori memberikan ID pesan dan jenis perubahan untuk
setiap pesan, seperti pesan ditambahkan, dihapus, atau label diubah sejak waktu
startHistoryId
. Anda dapat memperoleh dan menyimpan historyId
pesan terbaru dari sinkronisasi penuh atau sebagian untuk diberikan sebagai startHistoryId
untuk operasi sinkronisasi sebagian di masa mendatang.
Batasan
Catatan histori biasanya tersedia setidaknya selama satu minggu dan sering kali lebih lama. Namun, jangka waktu ketersediaan data mungkin jauh lebih singkat dan data terkadang tidak tersedia dalam kasus yang jarang terjadi. Jika
startHistoryId
yang diberikan oleh klien Anda berada di luar rentang data historis yang tersedia, API akan menampilkan respons error HTTP 404
. Dalam hal ini,
klien Anda harus melakukan sinkronisasi penuh seperti yang dijelaskan di bagian sebelumnya.