เอกสารนี้อธิบายความแตกต่างที่สำคัญระหว่าง Email Settings API กับ Gmail API คุณใช้คู่มือนี้เพื่อช่วยย้ายข้อมูลแอปไปยัง Gmail API ได้
การอนุญาตคำขอ
Gmail API ใช้โปรโตคอล OAuth 2.0 เพื่อให้สิทธิ์คําขอเช่นเดียวกับ Email Settings 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 เนื่องจากการตั้งค่าส่วนใหญ่ประกอบด้วยคู่คีย์/ค่า พัลส์จึงมีความคล้ายคลึงกันในแง่แนวคิดระหว่างเวอร์ชันต่างๆ
ตัวอย่างการสร้างป้ายกำกับ
Email Settings 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 ให้ใช้แหล่งข้อมูลป้ายกำกับ
การตั้งค่าเดิม | การตั้งค่าใหม่ | หมายเหตุ |
---|---|---|
labelId | id | |
ป้ายกำกับ | ชื่อ | |
unreadCount | messagesUnread | |
การเปิดเผย | labelListVisibility | SHOW เปลี่ยนชื่อเป็น labelShow HIDE เปลี่ยนชื่อเป็น labelHide |
การเปลี่ยนแปลงอื่นๆ
- เมื่ออัปเดตหรือลบป้ายกำกับ Gmail API จะอ้างอิงป้ายกำกับตามรหัสแทนที่จะอ้างอิงตามชื่อ
การจัดการตัวกรอง
หากต้องการจัดการตัวกรองใน Gmail API ให้ใช้แหล่งข้อมูลตัวกรอง
การตั้งค่าเดิม | การตั้งค่าใหม่ | หมายเหตุ |
---|---|---|
จาก | 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 ให้ใช้แหล่งข้อมูลการตั้งค่า
การตั้งค่าเดิม | การตั้งค่าใหม่ | หมายเหตุ |
---|---|---|
เปิดใช้ | เปิดใช้อยู่ | |
forwardTo | emailAddress | |
การดำเนินการ | การจัดการ | KEEP เปลี่ยนชื่อเป็น leaveInInbox ARCHIVE เปลี่ยนชื่อเป็น archive DELETE เปลี่ยนชื่อเป็น trash MARK_READ เปลี่ยนชื่อเป็น markRead |
การเปลี่ยนแปลงอื่นๆ
- คุณต้องสร้างและยืนยันอีเมลสำหรับส่งต่อก่อนจึงจะใช้ได้
- คุณจัดการอีเมลที่ใช้รับการส่งต่อได้ผ่านแหล่งข้อมูล ForwardingAddresses
การจัดการการตั้งค่า POP
หากต้องการจัดการสิทธิ์เข้าถึง POP ใน Gmail API ให้ใช้แหล่งข้อมูลการตั้งค่า
การตั้งค่าเดิม | การตั้งค่าใหม่ | หมายเหตุ |
---|---|---|
เปิดใช้ | 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 ให้ใช้แหล่งข้อมูลการตั้งค่า
การตั้งค่าเดิม | การตั้งค่าใหม่ |
---|---|
เปิดใช้ | เปิดใช้อยู่ |
การจัดการการตั้งค่าการตอบกลับอัตโนมัติในช่วงวันหยุด
หากต้องการจัดการการตอบกลับอัตโนมัติเมื่อลาพักร้อนใน Gmail API ให้ใช้แหล่งข้อมูลการตั้งค่า
การตั้งค่าเดิม | การตั้งค่าใหม่ |
---|---|
contactsOnly | restrictToContacts |
domainOnly | restrictToDomain |
เปิดใช้ | enableAutoReply |
endDate | endTime |
ข้อความ | responseBodyHtml responseBodyPlainText |
startDate | startTime |
วัตถุ | responseSubject |
การจัดการการตั้งค่าลายเซ็น
หากต้องการจัดการลายเซ็นอีเมลใน Gmail API ให้ใช้แหล่งข้อมูล SendAs
การตั้งค่าเดิม | การตั้งค่าใหม่ |
---|---|
ลายเซ็น | ลายเซ็น |
การเปลี่ยนแปลงอื่นๆ
- ตอนนี้ระบบจะจัดการลายเซ็นตามอีเมลแทน
การจัดการการตั้งค่าภาษา
หากต้องการจัดการการตั้งค่าภาษาใน Gmail API ให้ใช้แหล่งข้อมูลการตั้งค่า
การตั้งค่าเดิม | การตั้งค่าใหม่ |
---|---|
ภาษา | displayLanguage |
โปรดดูข้อมูลเพิ่มเติมในคู่มือการจัดการการตั้งค่าภาษา
การจัดการการตั้งค่าการมอบสิทธิ์
หากต้องการจัดการการมอบสิทธิ์ใน Gmail API ให้ใช้แหล่งข้อมูลผู้รับมอบสิทธิ์
การตั้งค่าเดิม | การตั้งค่าใหม่ |
---|---|
ที่อยู่ | delegateEmail |
สถานะ | verificationStatus |
การเปลี่ยนแปลงอื่นๆ
- ทั่วไป
- หากต้องการใช้วิธีการมอบสิทธิ์ใดๆ (รวมถึง delegates.create) ผู้ใช้ที่มอบสิทธิ์ต้องเปิดใช้ Gmail ซึ่งหมายความว่าผู้ใช้ที่มอบสิทธิ์จะไม่สามารถถูกระงับในGoogle Workspaceได้
- คุณไม่สามารถใช้อีเมลแทนเป็นอินพุตอีเมลของผู้รับมอบสิทธิ์สำหรับวิธีการใหม่ได้ ผู้ใช้ที่รับมอบสิทธิ์ต้องระบุด้วยอีเมลหลัก
- delegates.create
- ตอนนี้คุณใช้วิธีนี้เพื่อสร้างความสัมพันธ์ของผู้รับมอบสิทธิ์ในโดเมนหลายรายการที่เป็นของ Google Workspaceองค์กรเดียวกันได้แล้ว
- ตอนนี้วิธีการนี้ใช้ได้กับผู้ใช้ที่ต้องเปลี่ยนรหัสผ่านเมื่อลงชื่อเข้าใช้ครั้งถัดไป
- หากทําสําเร็จ เมธอดนี้จะแสดงทรัพยากร Users.settings.delegates ในเนื้อหาการตอบกลับแทนที่จะเป็นเนื้อหาการตอบกลับที่ว่างเปล่า
- หากผู้มอบสิทธิ์หรือผู้ใช้ที่รับมอบสิทธิ์ถูกปิดใช้ (เช่น ถูกระงับใน Google Workspace) วิธีการนี้จะดำเนินการไม่สำเร็จพร้อมแสดงข้อผิดพลาด HTTP 4XX แทนข้อผิดพลาด HTTP 500
- delegates.delete
- ตอนนี้วิธีการนี้สามารถใช้ลบผู้รับมอบสิทธิ์ที่มีverificationStatus ใดก็ได้แล้ว ไม่ใช่แค่ผู้รับมอบสิทธิ์ที่มีสถานะเป็น
accepted
หรือexpired
- ตอนนี้วิธีการนี้สามารถใช้ลบผู้รับมอบสิทธิ์ที่มีverificationStatus ใดก็ได้แล้ว ไม่ใช่แค่ผู้รับมอบสิทธิ์ที่มีสถานะเป็น
- delegates.get
- วิธีนี้เป็นวิธีใหม่ซึ่งอาจดีกว่าวิธี delegates.list ขึ้นอยู่กับความต้องการ
การจัดการการตั้งค่าทั่วไป
การตั้งค่าทั่วไปจะใช้ผ่าน API ไม่ได้อีกต่อไป