Menjaga klien Anda tetap sinkron dengan Gmail adalah hal penting untuk sebagian besar skenario aplikasi. Ada dua skenario sinkronisasi secara keseluruhan: sinkronisasi penuh dan sinkronisasi sebagian. Sinkronisasi penuh diperlukan pada saat pertama klien Anda terhubung ke Gmail dan dalam beberapa skenario langka lainnya. Jika klien Anda baru saja menyinkronkan, sinkronisasi parsial adalah alternatif yang lebih ringan untuk 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 pertama kali aplikasi terhubung ke Gmail, atau jika sinkronisasi sebagian tidak tersedia, Anda harus melakukan sinkronisasi penuh. Dalam operasi sinkronisasi penuh, aplikasi Anda harus mengambil dan menyimpan pesan atau thread terbaru sebanyak yang diperlukan untuk tujuan Anda. Misalnya, jika aplikasi Anda menampilkan daftar pesan terbaru, sebaiknya ambil dan cache pesan yang cukup untuk memungkinkan antarmuka responsif jika pengguna men-scroll setelah beberapa pesan pertama yang ditampilkan. Prosedur umum untuk melakukan operasi sinkronisasi penuh adalah sebagai berikut:
- Panggil
messages.list
untuk mengambil halaman pertama ID pesan. - 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 mengambil pesan dan meng-cache hasilnya untuk menghindari operasi pengambilan tambahan. Jika mengambil pesan yang di-cache sebelumnya, Anda harus menggunakanformat=MINIMAL
untuk mengurangi ukuran respons karena hanyalabelIds
yang dapat berubah. - Gabungkan pembaruan ke hasil yang disimpan dalam cache. Aplikasi Anda harus menyimpan
historyId
pesan terbaru (pesan pertama dalam responslist
) untuk sinkronisasi sebagian di masa mendatang.
Sinkronisasi sebagian
Jika aplikasi baru saja disinkronkan, Anda dapat melakukan sinkronisasi
sebagian menggunakan metode history.list
untuk menampilkan semua data histori yang lebih baru dari startHistoryId
yang ditentukan
dalam permintaan Anda. Data histori memberikan ID pesan dan jenis perubahan untuk setiap pesan, seperti pesan yang ditambahkan, dihapus, atau label yang diubah sejak waktu startHistoryId
. Anda dapat memperoleh dan menyimpan historyId
pesan
terbaru dari sinkronisasi penuh atau sebagian untuk disediakan sebagai startHistoryId
untuk
operasi sinkronisasi parsial mendatang.
Batasan
Catatan riwayat biasanya tersedia setidaknya selama satu minggu dan sering kali lebih lama. Namun, jangka waktu ketersediaan data mungkin jauh lebih sedikit, dan terkadang catatan mungkin juga tidak tersedia dalam kasus yang jarang terjadi. Jika startHistoryId
yang disediakan oleh klien Anda berada di luar rentang data histori yang tersedia, API akan menampilkan respons error HTTP 404
. Dalam hal ini,
klien Anda harus melakukan sinkronisasi penuh seperti yang dijelaskan di bagian sebelumnya.