เอกสารนี้ครอบคลุมความแตกต่างที่สำคัญระหว่าง 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
- ตอนนี้คุณใช้วิธีนี้เพื่อลบผู้รับมอบสิทธิ์ที่มี verificationStatus ใดก็ได้ แทนการลบผู้รับมอบสิทธิ์
- delegates.get
- นี่เป็นวิธีการใหม่ ซึ่งอาจเหมาะกว่าเมธอด delegates.list ทั้งนี้ขึ้นอยู่กับความต้องการ
การจัดการการตั้งค่าทั่วไป
การตั้งค่าทั่วไปจะใช้ผ่าน API ไม่ได้อีกต่อไป