การซิงค์ไคลเอ็นต์กับ Gmail

การทำให้ไคลเอ็นต์ซิงค์กับ Gmail อยู่เสมอเป็นสิ่งสำคัญสำหรับสถานการณ์ต่างๆ ของแอปพลิเคชันส่วนใหญ่ มีสถานการณ์การซิงค์โดยรวม 2 แบบ คือ การซิงค์แบบเต็มและการซิงค์บางส่วน คุณต้องใช้การซิงค์เต็มรูปแบบในครั้งแรกที่ไคลเอ็นต์เชื่อมต่อกับ Gmail และในบางกรณีซึ่งพบได้ไม่บ่อยนัก หากไคลเอ็นต์เพิ่งซิงค์ข้อมูลไปเมื่อเร็วๆ นี้ การซิงค์ข้อมูลบางส่วนจะเป็นทางเลือกมากกว่าเมื่อเทียบกับการซิงค์แบบเต็ม นอกจากนี้คุณยังใช้ข้อความ Push เพื่อเรียกใช้การซิงค์บางส่วนแบบเรียลไทม์และเมื่อจำเป็นเท่านั้นได้ จึงเพื่อหลีกเลี่ยงแบบสำรวจที่ไม่จำเป็น

เนื้อหา

การซิงค์เต็มรูปแบบ

เมื่อแอปพลิเคชันเชื่อมต่อกับ Gmail เป็นครั้งแรก หรือการซิงค์บางส่วนไม่พร้อมใช้งาน คุณจะต้องทำการซิงค์แบบเต็ม ในการดำเนินการซิงค์อย่างเต็มรูปแบบ แอปพลิเคชันของคุณควรเรียกและจัดเก็บข้อความหรือชุดข้อความล่าสุดเท่าที่จำเป็นสำหรับวัตถุประสงค์ของคุณ เช่น หากแอปพลิเคชันแสดงรายการข้อความล่าสุด คุณอาจต้องการดึงและแคชข้อความให้มากพอที่จะทำให้มีอินเทอร์เฟซที่ปรับเปลี่ยนตามอุปกรณ์หากผู้ใช้เลื่อนเกินข้อความแรกที่แสดงขึ้นมา ขั้นตอนทั่วไปสำหรับการดำเนินการ การซิงค์แบบเต็มมีดังนี้

  1. เรียก messages.list เพื่อเรียกหน้าแรกของรหัสข้อความ
  2. สร้างคำขอแบบกลุ่มของ messages.get คำขอสำหรับแต่ละข้อความที่แสดงผลโดยคำขอรายการ หากแอปพลิเคชันแสดงเนื้อหาข้อความ คุณควรใช้ format=FULL หรือ format=RAW ในครั้งแรกที่แอปพลิเคชันเรียกข้อความและแคชผลลัพธ์เพื่อหลีกเลี่ยงการดำเนินการเรียกข้อมูลเพิ่มเติม หากกำลังเรียกข้อความที่แคชไว้ก่อนหน้านี้ คุณควรใช้ format=MINIMAL เพื่อลดขนาดการตอบกลับเนื่องจาก labelIds เท่านั้นที่อาจเปลี่ยนแปลง
  3. รวมการอัปเดตไว้ในผลลัพธ์ที่แคช แอปพลิเคชันของคุณควรจัดเก็บ historyId ของข้อความล่าสุด (ข้อความแรกในการตอบกลับ list) สำหรับการซิงค์บางส่วนในอนาคต

การซิงค์ข้อมูลบางส่วน

หากแอปพลิเคชันเพิ่งซิงค์ข้อมูลไปเมื่อเร็วๆ นี้ คุณทำการซิงค์บางส่วนได้โดยใช้เมธอด history.list เพื่อแสดงผลบันทึกประวัติทั้งหมดที่ใหม่กว่า startHistoryId ที่คุณระบุในคำขอ บันทึกประวัติจะมีรหัสข้อความและประเภทการเปลี่ยนแปลงสำหรับแต่ละข้อความ เช่น ข้อความที่เพิ่ม ลบ หรือป้ายกำกับที่แก้ไขนับตั้งแต่เวลา startHistoryId คุณสามารถรับและจัดเก็บ historyId ของข้อความล่าสุดจากการซิงค์แบบเต็มหรือบางส่วนเพื่อใช้เป็น startHistoryId สำหรับการซิงค์บางส่วนในอนาคต

ข้อจำกัด

โดยทั่วไปแล้ว บันทึกประวัติจะใช้ได้นานอย่างน้อย 1 สัปดาห์และมักจะนานกว่านี้ อย่างไรก็ตาม ช่วงเวลาที่บันทึกสามารถใช้งานได้อาจน้อยลงอย่างมาก และบางครั้งอาจไม่มีการบันทึกในบางกรณี หาก startHistoryId ที่ไคลเอ็นต์ระบุไว้อยู่นอกช่วงของบันทึกประวัติที่ใช้ได้ API จะแสดงการตอบกลับข้อผิดพลาด HTTP 404 ในกรณีนี้ ไคลเอ็นต์จะต้องทำการซิงค์แบบเต็มตามที่อธิบายไว้ในส่วนก่อนหน้า