Menyinkronkan Klien dengan Gmail

Menjaga klien Anda tetap disinkronkan 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 sebagian adalah alternatif yang lebih ringan dari 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 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 simpan pesan yang cukup ke dalam cache untuk memungkinkan antarmuka responsif jika pengguna men-scroll di luar beberapa pesan pertama yang ditampilkan. Prosedur umum untuk melakukan operasi sinkronisasi penuh adalah sebagai berikut:

  1. Panggil messages.list untuk mengambil halaman pertama ID pesan.
  2. Buat permintaan batch dari permintaan messages.get untuk setiap pesan yang ditampilkan oleh permintaan daftar. Jika aplikasi menampilkan konten pesan, Anda harus menggunakan format=FULL atau format=RAW saat pertama kali aplikasi mengambil pesan dan meng-cache hasilnya untuk menghindari operasi pengambilan tambahan. Jika mengambil pesan yang sebelumnya di-cache, Anda harus menggunakan format=MINIMAL untuk mengurangi ukuran respons karena hanya labelIds yang dapat berubah.
  3. Gabungkan pembaruan ke dalam hasil yang di-cache. Aplikasi Anda harus menyimpan historyId pesan terbaru (pesan pertama dalam respons list) untuk sinkronisasi parsial 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 Anda tentukan dalam permintaan. 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 diberikan sebagai startHistoryId untuk operasi sinkronisasi sebagian pada masa mendatang.

Batasan

Data histori biasanya tersedia setidaknya selama satu minggu dan sering kali lebih lama. Namun, jangka waktu tersedianya data mungkin jauh lebih sedikit dan dalam kasus yang jarang terjadi, data mungkin tidak tersedia. Jika startHistoryId yang disediakan oleh klien Anda berada di luar rentang catatan 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.