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

เอกสารนี้อธิบายวิธีซิงค์ไคลเอ็นต์กับ Gmail API

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

การซิงค์ทั้งหมด

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

ทำตามขั้นตอนต่อไปนี้เพื่อทำการซิงค์แบบเต็ม

  1. เรียกใช้เมธอด messages.list เพื่อดึงข้อมูลหน้าแรกของรหัสข้อความ

  2. สร้างคำขอแบบกลุ่มของ messages.get คำขอเมธอดสำหรับแต่ละข้อความที่แสดงผลโดยคำขอรายการ

    หากแอปแสดงเนื้อหาข้อความ ให้ตั้งค่าพารามิเตอร์ format เป็น format=full หรือ format=raw ในครั้งแรกที่แอปเรียกข้อมูลข้อความ และแคชผลลัพธ์เพื่อหลีกเลี่ยงการดำเนินการเรียกข้อมูลเพิ่มเติม หากคุณ ดึงข้อมูลข้อความที่แคชไว้ก่อนหน้านี้ ให้ใช้ format=minimal เพื่อลด ขนาดการตอบกลับ เนื่องจากมีเพียง labelIds เท่านั้นที่อาจเปลี่ยนแปลง

  3. ผสานรวมการอัปเดตเข้ากับผลลัพธ์ที่แคชไว้ แอปของคุณควรจัดเก็บ historyId ของข้อความล่าสุด (ข้อความแรกในการตอบกลับ list) สำหรับ การซิงค์บางส่วนในอนาคต

การซิงค์บางส่วน

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

ต้องตั้งค่าพารามิเตอร์การค้นหา startHistoryId เป็น historyId ของข้อความล่าสุด หากต้องการดึง historyId ของข้อความล่าสุด ให้ใช้วิธี messages.get หรือ messages.list นอกจากนี้ คุณยังตั้งค่าในระหว่างการซิงค์แบบเต็มหรือบางส่วนเพื่อใช้ในอนาคตได้ด้วย

ออบเจ็กต์ที่ส่งคืน History จะมีรหัสข้อความและประเภทการเปลี่ยนแปลงของแต่ละข้อความ เช่น เพิ่มข้อความหรือแก้ไขป้ายกำกับ ตั้งแต่เวลาของstartHistoryIdที่ระบุ

ข้อจำกัด

โดยปกติแล้ว บันทึกประวัติจะพร้อมใช้งานอย่างน้อย 1 สัปดาห์ และมักจะนานกว่านั้น อย่างไรก็ตาม ระยะเวลาที่บันทึกพร้อมใช้งานอาจสั้นลงอย่างมาก และในบางกรณีอาจไม่มีบันทึก

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