Việc giữ cho ứng dụng của bạn được đồng bộ hoá với Gmail là điều quan trọng đối với hầu hết các trường hợp ứng dụng. Có 2 trường hợp đồng bộ hoá tổng thể: đồng bộ hoá toàn bộ và đồng bộ hoá một phần. Bạn phải đồng bộ hoá toàn bộ vào lần đầu tiên ứng dụng của bạn kết nối với Gmail và trong một số trường hợp hiếm gặp khác. Nếu gần đây ứng dụng của bạn đã đồng bộ hoá, thì đồng bộ hoá một phần là một giải pháp thay thế có trọng lượng nhẹ hơn cho đồng bộ hoá đầy đủ. Bạn cũng có thể sử dụng thông báo đẩy để kích hoạt quá trình đồng bộ hoá một phần theo thời gian thực và chỉ khi cần thiết, nhờ đó tránh được việc thăm dò ý kiến không cần thiết.
Nội dung
Đồng bộ hoá toàn bộ
Lần đầu tiên ứng dụng của bạn kết nối với Gmail hoặc nếu không có tính năng đồng bộ hoá một phần, bạn phải thực hiện đồng bộ hoá toàn bộ. Trong thao tác đồng bộ hoá đầy đủ, ứng dụng của bạn sẽ truy xuất và lưu trữ nhiều tin nhắn hoặc luồng gần đây nhất khi cần thiết cho mục đích của bạn. Ví dụ: nếu ứng dụng của bạn hiển thị danh sách các tin nhắn gần đây, bạn có thể muốn truy xuất và lưu vào bộ nhớ đệm đủ số lượng tin nhắn để cho phép giao diện phản hồi nếu người dùng cuộn qua vài tin nhắn đầu tiên được hiển thị. Quy trình chung để thực hiện thao tác đồng bộ hoá đầy đủ như sau:
- Gọi
messages.list
để truy xuất trang đầu tiên của mã nhận dạng tin nhắn. - Tạo một yêu cầu hàng loạt gồm các yêu cầu
messages.get
cho từng thông báo do yêu cầu danh sách trả về. Nếu ứng dụng của bạn hiển thị nội dung tin nhắn, bạn nên sử dụngformat=FULL
hoặcformat=RAW
vào lần đầu tiên ứng dụng truy xuất một tin nhắn và lưu kết quả vào bộ nhớ đệm để tránh các thao tác truy xuất bổ sung. Nếu đang truy xuất một thông báo đã lưu vào bộ nhớ đệm trước đó, bạn nên sử dụngformat=MINIMAL
để giảm kích thước của phản hồi vì chỉlabelIds
mới có thể thay đổi. - Hợp nhất nội dung cập nhật vào kết quả được lưu vào bộ nhớ đệm. Ứng dụng của bạn nên lưu trữ
historyId
của tin nhắn gần đây nhất (tin nhắn đầu tiên trong phản hồilist
) để đồng bộ hoá một phần trong tương lai.
Đồng bộ hoá một phần
Nếu ứng dụng của bạn đã đồng bộ hoá gần đây, bạn có thể thực hiện đồng bộ hoá một phần bằng phương thức history.list
để trả về tất cả các bản ghi nhật ký mới hơn startHistoryId
mà bạn chỉ định trong yêu cầu. Nhật ký cung cấp mã thông báo và loại thay đổi cho từng thông báo, chẳng hạn như thông báo được thêm, bị xoá hoặc nhãn được sửa đổi kể từ thời điểm startHistoryId
. Bạn có thể lấy và lưu trữ historyId
của thông báo gần đây nhất từ một quy trình đồng bộ hoá toàn bộ hoặc một phần để cung cấp dưới dạng startHistoryId
cho các thao tác đồng bộ hoá một phần trong tương lai.
Các điểm hạn chế
Các bản ghi nhật ký thường có sẵn trong ít nhất một tuần và thường lâu hơn. Tuy nhiên, khoảng thời gian mà bản ghi có sẵn có thể ngắn hơn đáng kể và đôi khi bản ghi có thể không có trong một số ít trường hợp. Nếu startHistoryId
do máy khách của bạn cung cấp nằm ngoài phạm vi có sẵn của các bản ghi nhật ký, thì API sẽ trả về một phản hồi lỗi HTTP 404
. Trong trường hợp này, ứng dụng khách của bạn phải thực hiện quy trình đồng bộ hoá đầy đủ như mô tả trong phần trước.