การทำให้ไคลเอ็นต์ซิงค์กับ Gmail อยู่เสมอเป็นสิ่งสำคัญสำหรับสถานการณ์ต่างๆ ของแอปพลิเคชันส่วนใหญ่ มีสถานการณ์การซิงค์โดยรวม 2 แบบ คือ การซิงค์แบบเต็มและการซิงค์บางส่วน คุณต้องใช้การซิงค์เต็มรูปแบบในครั้งแรกที่ไคลเอ็นต์เชื่อมต่อกับ Gmail และในบางกรณีซึ่งพบได้ไม่บ่อยนัก หากไคลเอ็นต์เพิ่งซิงค์ข้อมูลไปเมื่อเร็วๆ นี้ การซิงค์ข้อมูลบางส่วนจะเป็นทางเลือกมากกว่าเมื่อเทียบกับการซิงค์แบบเต็ม นอกจากนี้คุณยังใช้ข้อความ Push เพื่อเรียกใช้การซิงค์บางส่วนแบบเรียลไทม์และเมื่อจำเป็นเท่านั้นได้ จึงเพื่อหลีกเลี่ยงแบบสำรวจที่ไม่จำเป็น
เนื้อหา
การซิงค์เต็มรูปแบบ
เมื่อแอปพลิเคชันเชื่อมต่อกับ Gmail เป็นครั้งแรก หรือการซิงค์บางส่วนไม่พร้อมใช้งาน คุณจะต้องทำการซิงค์แบบเต็ม ในการดำเนินการซิงค์อย่างเต็มรูปแบบ แอปพลิเคชันของคุณควรเรียกและจัดเก็บข้อความหรือชุดข้อความล่าสุดเท่าที่จำเป็นสำหรับวัตถุประสงค์ของคุณ เช่น หากแอปพลิเคชันแสดงรายการข้อความล่าสุด คุณอาจต้องการดึงและแคชข้อความให้มากพอที่จะทำให้มีอินเทอร์เฟซที่ปรับเปลี่ยนตามอุปกรณ์หากผู้ใช้เลื่อนเกินข้อความแรกที่แสดงขึ้นมา ขั้นตอนทั่วไปสำหรับการดำเนินการ การซิงค์แบบเต็มมีดังนี้
- เรียก
messages.list
เพื่อเรียกหน้าแรกของรหัสข้อความ - สร้างคำขอแบบกลุ่มของ
messages.get
คำขอสำหรับแต่ละข้อความที่แสดงผลโดยคำขอรายการ หากแอปพลิเคชันแสดงเนื้อหาข้อความ คุณควรใช้format=FULL
หรือformat=RAW
ในครั้งแรกที่แอปพลิเคชันเรียกข้อความและแคชผลลัพธ์เพื่อหลีกเลี่ยงการดำเนินการเรียกข้อมูลเพิ่มเติม หากกำลังเรียกข้อความที่แคชไว้ก่อนหน้านี้ คุณควรใช้format=MINIMAL
เพื่อลดขนาดการตอบกลับเนื่องจากlabelIds
เท่านั้นที่อาจเปลี่ยนแปลง - รวมการอัปเดตไว้ในผลลัพธ์ที่แคช แอปพลิเคชันของคุณควรจัดเก็บ
historyId
ของข้อความล่าสุด (ข้อความแรกในการตอบกลับlist
) สำหรับการซิงค์บางส่วนในอนาคต
การซิงค์ข้อมูลบางส่วน
หากแอปพลิเคชันเพิ่งซิงค์ข้อมูลไปเมื่อเร็วๆ นี้ คุณทำการซิงค์บางส่วนได้โดยใช้เมธอด history.list
เพื่อแสดงผลบันทึกประวัติทั้งหมดที่ใหม่กว่า startHistoryId
ที่คุณระบุในคำขอ บันทึกประวัติจะมีรหัสข้อความและประเภทการเปลี่ยนแปลงสำหรับแต่ละข้อความ เช่น ข้อความที่เพิ่ม ลบ หรือป้ายกำกับที่แก้ไขนับตั้งแต่เวลา startHistoryId
คุณสามารถรับและจัดเก็บ historyId
ของข้อความล่าสุดจากการซิงค์แบบเต็มหรือบางส่วนเพื่อใช้เป็น startHistoryId
สำหรับการซิงค์บางส่วนในอนาคต
ข้อจำกัด
โดยทั่วไปแล้ว บันทึกประวัติจะใช้ได้นานอย่างน้อย 1 สัปดาห์และมักจะนานกว่านี้ อย่างไรก็ตาม ช่วงเวลาที่บันทึกสามารถใช้งานได้อาจน้อยลงอย่างมาก และบางครั้งอาจไม่มีการบันทึกในบางกรณี หาก startHistoryId
ที่ไคลเอ็นต์ระบุไว้อยู่นอกช่วงของบันทึกประวัติที่ใช้ได้ API จะแสดงการตอบกลับข้อผิดพลาด HTTP 404
ในกรณีนี้ ไคลเอ็นต์จะต้องทำการซิงค์แบบเต็มตามที่อธิบายไว้ในส่วนก่อนหน้า