Đồng bộ hoá ứng dụng với Gmail

Tài liệu này giải thích cách đồng bộ hoá các ứng dụng bằng Gmail API.

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 sử dụng ứng dụng. Có hai phương thức đồng bộ hoá: đồng bộ hoá toàn bộđồng bộ hoá một phần. Bạn cần đồ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 so với đồ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.

Đồ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 phải truy xuất và lưu trữ nhiều tin nhắn hoặc chuỗi gần đây nhất có thể nếu cần 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ị.

Làm theo các bước sau để thực hiện đồng bộ hoá toàn bộ:

  1. Gọi phương thức messages.list để truy xuất trang đầu tiên của mã nhận dạng tin nhắn.

  2. Tạo một yêu cầu hàng loạt gồm các yêu cầu phương thức 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 thư, bạn nên đặt Format thành format=FULL hoặc format=RAW vào lần đầu tiên ứng dụng truy xuất một thư 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 đã được lưu vào bộ nhớ đệm trước đó, bạn nên sử dụng format=MINIMAL để giảm kích thước của phản hồi vì chỉ có labelIds mới có thể thay đổi.

  3. 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 phải lưu trữ historyId của tin nhắn gần đây nhất (tin nhắn đầu tiên trong phản hồi list) để đồ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 tham số truy vấn startHistoryId mà bạn phải chỉ định trong yêu cầu.

Bạn phải đặt tham số truy vấn startHistoryId thành historyId của một thông báo gần đây. Để truy xuất historyId của một thông báo gần đây, hãy sử dụng phương thức messages.get hoặc messages.list. Bạn cũng có thể đặt giá trị trong quá trình đồng bộ hoá toàn bộ hoặc một phần để sử dụng trong tương lai.

Đối tượng History được trả về bao gồm mã thư và loại thay đổi cho từng thư, chẳng hạn như thư được thêm hoặc nhãn được sửa đổi, kể từ thời điểm startHistoryId được cung cấp.

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à 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ó sẵn trong một số trường hợp hiếm gặp.

Nếu startHistoryId do ứng dụng 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 Gmail 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 đồng bộ hoá đầy đủ.