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

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

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

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

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

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

  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การตอบกลับข้อผิดพลาด ในกรณีนี้ ลูกค้าของคุณต้องทำการซิงค์แบบเต็ม