การย้ายข้อมูลจาก Email Settings API

เอกสารนี้ครอบคลุมความแตกต่างที่สำคัญระหว่าง Email Settings API และ Gmail API คุณใช้คู่มือนี้เพื่อช่วยย้ายข้อมูลแอปไปยัง Gmail API ได้

การอนุญาตคำขอ

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

Email Settings API ใช้ขอบเขตนี้

https://apps-apis.google.com/a/feeds/emailsettings/2.0/

ขอบเขตที่เทียบเท่าใน Gmail API ได้แก่

https://www.googleapis.com/auth/gmail.settings.basic
https://www.googleapis.com/auth/gmail.settings.sharing

การเปลี่ยนแปลงโปรโตคอล

Email Settings API ใช้โปรโตคอล GDATA แบบ XML Gmail API จะใช้ JSON เนื่องจากการตั้งค่าส่วนใหญ่ประกอบด้วยคู่คีย์/ค่า เพย์โหลดจึงคล้ายคลึงกันระหว่างแต่ละเวอร์ชัน

ตัวอย่างการสร้างป้ายกำกับ

API การตั้งค่าอีเมล

POST https://apps-apis.google.com/a/feeds/emailsettings/2.0/{domain name}/{username}/label
<?xml version="1.0" encoding="utf-8"?>
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:apps="http://schemas.google.com/apps/2006">
  <apps:property name="label" value="status updates" />
</atom:entry>

Gmail API

POST https://www.googleapis.com/gmail/v1/users/{username}/labels
{
   "name": "status updates"
}

ใช้ไลบรารีของไคลเอ็นต์ที่มีให้แทนการใช้โปรโตคอลโดยตรง

การจัดการป้ายกำกับ

หากต้องการจัดการป้ายกำกับใน Gmail API โปรดใช้ทรัพยากรป้ายกำกับ

การตั้งค่าเดิม การตั้งค่าใหม่ Notes
labelId id
ป้ายกำกับ ชื่อ
unreadCount messagesUnread
การเปิดเผย labelListVisibility SHOW เปลี่ยนชื่อเป็น labelShow
HIDE เปลี่ยนเป็น labelHide

การเปลี่ยนแปลงอื่นๆ

  • เมื่ออัปเดตหรือลบป้ายกำกับ Gmail API จะอ้างอิงป้ายกำกับตามรหัสแทนที่จะเป็นชื่อ

การจัดการตัวกรอง

หากต้องการจัดการตัวกรองใน Gmail API ให้ใช้ทรัพยากรตัวกรอง

การตั้งค่าเดิม การตั้งค่าใหม่ Notes
จาก criteria.from
ถึง criteria.to
วัตถุ criteria.subject
hasTheWord criteria.query
doesNotHaveTheWord criteria.negatedQuery
hasAttachment criteria.hasAttachment
shouldArchive action.removeLabelIds ใช้ INBOX เป็นรหัสป้ายกำกับ
shouldMarkAsRead action.removeLabelIds ใช้ UNREAD เป็นรหัสป้ายกำกับ
shouldStar action.addLabelIds ใช้ STARRED เป็นรหัสป้ายกำกับ
ป้ายกำกับ action.addLabelIds ใช้รหัสของป้ายกำกับเพื่อเพิ่ม
forwardTo action.forward
shouldTrash action.addLabelIds ใช้ TRASH เป็นรหัสป้ายกำกับ
neverSpam action.removeLabelIds ใช้ SPAM เป็นรหัสป้ายกำกับ

การเปลี่ยนแปลงอื่นๆ

  • หากยังไม่มีการเพิ่มป้ายกำกับผู้ใช้ คุณจะต้องสร้างป้ายกำกับนั้นอย่างชัดแจ้งโดยใช้เมธอด labels.create

การจัดการชื่อแทนที่ใช้ส่ง

หากต้องการจัดการอีเมลแทนใน Gmail API ให้ใช้ทรัพยากร SendAs

การตั้งค่าเดิม การตั้งค่าใหม่
ชื่อ displayName
จัดการ sendAsEmail
replyTo replyToAddress
makeDefault isDefault

การจัดการเว็บคลิป

การตั้งค่าเว็บคลิปจะใช้งานผ่าน API ไม่ได้อีกต่อไป

การจัดการการตั้งค่าการส่งต่ออัตโนมัติ

หากต้องการจัดการการส่งต่ออัตโนมัติใน Gmail API โปรดใช้ทรัพยากรการตั้งค่า

การตั้งค่าเดิม การตั้งค่าใหม่ Notes
enable เปิดใช้อยู่
forwardTo emailAddress
การดำเนินการ การควบคุม KEEP เปลี่ยนชื่อเป็น leaveInInbox
ARCHIVE เปลี่ยนเป็น archive
DELETE เปลี่ยนเป็น trash
MARK_READ แล้วตอนนี้ markRead

การเปลี่ยนแปลงอื่นๆ

  • คุณต้องสร้างและยืนยันที่อยู่การส่งต่อก่อนใช้งาน
  • คุณสามารถจัดการอีเมลสำหรับส่งต่อผ่านทรัพยากร ForwardingAddresses ได้

การจัดการการตั้งค่า POP

หากต้องการจัดการการเข้าถึง POP ใน Gmail API โปรดใช้ทรัพยากรการตั้งค่า

การตั้งค่าเดิม การตั้งค่าใหม่ Notes
enable accessWindow ปิดใช้เมื่อตั้งค่าเป็น disabled
enableFor accessWindow ALL_MAIL เปลี่ยนชื่อเป็น allMail
MAIL_FROM_NOW_ON เปลี่ยนเป็น fromNowOn
การดำเนินการ การควบคุม KEEP เปลี่ยนชื่อเป็น leaveInInbox
ARCHIVE เปลี่ยนเป็น archive
DELETE เปลี่ยนเป็น trash
MARK_READ แล้วตอนนี้ markRead

การจัดการการตั้งค่า IMAP

หากต้องการจัดการการเข้าถึง IMAP ใน Gmail API โปรดใช้ทรัพยากรการตั้งค่า

การตั้งค่าเดิม การตั้งค่าใหม่
enable เปิดใช้อยู่

การจัดการการตั้งค่าการตอบกลับอัตโนมัติในวันหยุด

หากต้องการจัดการการตอบกลับอัตโนมัติในวันหยุดใน Gmail API โปรดใช้ทรัพยากรการตั้งค่า

การตั้งค่าเดิม การตั้งค่าใหม่
contactsOnly restrictToContacts
domainOnly restrictToDomain
enable enableAutoReply
endDate endTime
ข้อความ ResponseBodyHtml
responseBodyPlainText
startDate startTime
วัตถุ responseSubject

การจัดการการตั้งค่าลายเซ็น

หากต้องการจัดการลายเซ็นอีเมลใน Gmail API ให้ใช้ทรัพยากร SendAs

การตั้งค่าเดิม การตั้งค่าใหม่
ลายเซ็น ลายเซ็น

การเปลี่ยนแปลงอื่นๆ

  • คุณสามารถจัดการลายเซ็นของชื่อแทนแต่ละชื่อได้แล้ว

การจัดการการตั้งค่าภาษา

หากต้องการจัดการการตั้งค่าภาษาใน Gmail API โปรดใช้ทรัพยากรการตั้งค่า

การตั้งค่าเดิม การตั้งค่าใหม่
ภาษา displayLanguage

โปรดดูข้อมูลเพิ่มเติมที่คู่มือการจัดการการตั้งค่าภาษา

การจัดการการตั้งค่าการมอบสิทธิ์

หากต้องการจัดการการมอบสิทธิ์ใน Gmail API โปรดใช้ทรัพยากร Delegates

การตั้งค่าเดิม การตั้งค่าใหม่
จัดการ delegateEmail
status verificationStatus

การเปลี่ยนแปลงอื่นๆ

  • ทั่วไป
    • หากต้องการใช้วิธีการมอบสิทธิ์รายการใดก็ตาม (รวมถึง delegates.create) คุณต้องเปิดใช้ผู้ใช้ของผู้มอบสิทธิ์สำหรับ Gmail ซึ่งหมายความว่าคุณจะระงับผู้ใช้ของผู้มอบสิทธิ์ในGoogle Workspaceไม่ได้
    • คุณจะใช้อีเมลแทนเป็นอีเมลสำหรับมอบสิทธิ์วิธีการใหม่ๆ ไม่ได้ คุณจะต้องอ้างถึงผู้ใช้ที่ได้รับมอบสิทธิ์โดยใช้ที่อยู่อีเมลหลัก
  • delegates.create
    • วิธีการนี้สามารถใช้เพื่อสร้างความสัมพันธ์แบบมอบสิทธิ์ในโดเมนหลายโดเมนที่เป็นขององค์กร Google Workspaceเดียวกันได้
    • ตอนนี้สามารถใช้วิธีนี้กับผู้ใช้ที่ต้องเปลี่ยนรหัสผ่านเมื่อลงชื่อเข้าใช้ครั้งถัดไปได้แล้ว
    • หากสำเร็จ เมธอดนี้จะแสดง Users.settings.delegates resource ในเนื้อหาการตอบกลับแทนเนื้อหาการตอบกลับที่ว่างเปล่า
    • หากผู้มอบสิทธิ์หรือผู้ใช้ที่ได้รับมอบสิทธิ์ถูกปิดใช้ (เช่น ถูกระงับใน Google Workspace) เมธอดจะดำเนินการไม่สำเร็จโดยมีข้อผิดพลาด HTTP 4XX แทนที่จะเป็นข้อผิดพลาด HTTP 500
  • delegates.delete
    • ตอนนี้คุณใช้วิธีนี้เพื่อลบผู้รับมอบสิทธิ์ที่มี verificationStatus ใดก็ได้ แทนการลบผู้รับมอบสิทธิ์ accepted หรือ expired
  • delegates.get
    • นี่เป็นวิธีการใหม่ ซึ่งอาจเหมาะกว่าเมธอด delegates.list ทั้งนี้ขึ้นอยู่กับความต้องการ

การจัดการการตั้งค่าทั่วไป

การตั้งค่าทั่วไปจะใช้ผ่าน API ไม่ได้อีกต่อไป