במסמך הזה מפורטים ההבדלים העיקריים בין Email Settings API לבין Gmail API. המדריך הזה יעזור לכם להעביר את האפליקציה שלכם ל-Gmail API.
אישור בקשות
בדומה ל-Email Settings API, גם Gmail API משתמש בפרוטוקול OAuth 2.0 כדי לאשר בקשות. הבדל חשוב אחד הוא שההרשאות של Gmail API מוגבלות למשתמש ספציפי, ולא לכל הדומיין. כלומר, אישור של חשבון אדמין בדומיין לא מאפשר לכם להעביר את הדואר של משתמשים אחרים בדומיין. במקום זאת, צריך להשתמש בחשבונות שירות רגילים עם הרשאה לכל הדומיין שנמצאים ברשימת ההיתרים במסוף Admin כדי ליצור את אסימון האימות המתאים.
ממשק 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
שינויים בפרוטוקול
ה-API של הגדרות האימייל משתמש בפרוטוקול GDATA שמבוסס על XML. Gmail API משתמש ב-JSON. מכיוון שההגדרות מורכבות בעיקר מצמדי מפתח/ערך, המטען הייעודי (payload) דומה מבחינה רעיונית בין הגרסאות.
דוגמה ליצירת תווית:
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>
ממשק ה-API של Gmail
POST https://www.googleapis.com/gmail/v1/users/{username}/labels
{
"name": "status updates"
}
במקום להטמיע את הפרוטוקול ישירות, צריך להשתמש בספריות הלקוח שסופקו.
ניהול תוויות
כדי לנהל תוויות ב-Gmail API, צריך להשתמש במשאב Labels.
| ההגדרה הקודמת | הגדרה חדשה | הערות |
|---|---|---|
| labelId | id [מזהה] | |
| תווית | שם | |
| unreadCount | messagesUnread | |
| חשיפה | labelListVisibility | SHOW נקרא עכשיו labelShowHIDE נקרא עכשיו labelHide |
שינויים אחרים:
- כשמעדכנים או מוחקים תוויות, Gmail API מפנה לתוויות לפי מזהה ולא לפי שם.
ניהול המסננים
כדי לנהל מסננים ב-Gmail API, צריך להשתמש במשאב Filters.
| ההגדרה הקודמת | הגדרה חדשה | הערות |
|---|---|---|
| החל מ- | 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 |
ניהול קליפים של דפי אינטרנט
ההגדרות של Web Clip כבר לא זמינות דרך ה-API.
ניהול ההגדרות של העברה אוטומטית
כדי לנהל העברה אוטומטית ב-Gmail API, משתמשים במשאב Settings.
| ההגדרה הקודמת | הגדרה חדשה | הערות |
|---|---|---|
| enable | פעיל | |
| forwardTo | emailAddress | |
| פעולה | מחיקה | KEEP נקרא עכשיו leaveInInboxARCHIVE נקרא עכשיו archiveDELETE נקרא עכשיו trashMARK_READ נקרא עכשיו markRead |
שינויים אחרים:
- צריך ליצור כתובות להעברה ולאמת אותן לפני שמשתמשים בהן
- אפשר לנהל כתובות להעברה באמצעות מקור המידע ForwardingAddresses.
ניהול הגדרות POP
כדי לנהל את הגישה ל-POP ב-Gmail API, משתמשים במשאב Settings.
| ההגדרה הקודמת | הגדרה חדשה | הערות |
|---|---|---|
| enable | accessWindow | האפשרות מושבתת כשהערך הוא disabled |
| enableFor | accessWindow | ALL_MAIL נקרא עכשיו allMailMAIL_FROM_NOW_ON נקרא עכשיו fromNowOn |
| פעולה | מחיקה | KEEP נקרא עכשיו leaveInInboxARCHIVE נקרא עכשיו archiveDELETE נקרא עכשיו trashMARK_READ נקרא עכשיו markRead |
ניהול הגדרות IMAP
כדי לנהל את הגישה ל-IMAP ב-Gmail API, משתמשים במשאב Settings.
| ההגדרה הקודמת | הגדרה חדשה |
|---|---|
| enable | פעיל |
ניהול ההגדרות של מענה אוטומטי בחופשה
כדי לנהל את המענה האוטומטי לחופשה ב-Gmail API, משתמשים במשאב Settings.
| ההגדרה הקודמת | הגדרה חדשה |
|---|---|
| contactsOnly | restrictToContacts |
| domainOnly | restrictToDomain |
| enable | enableAutoReply |
| endDate | endTime |
| הודעה | responseBodyHtml responseBodyPlainText |
| startDate | startTime |
| נושא | responseSubject |
ניהול הגדרות החתימה
כדי לנהל חתימות אימייל ב-Gmail API, צריך להשתמש במשאב SendAs.
| ההגדרה הקודמת | הגדרה חדשה |
|---|---|
| signature | signature |
שינויים אחרים:
- חתימות מנוהלות עכשיו לכל כתובת אימייל חלופית.
ניהול הגדרות השפה
כדי לנהל את הגדרות השפה ב-Gmail API, משתמשים במשאב Settings.
| ההגדרה הקודמת | הגדרה חדשה |
|---|---|
| language | displayLanguage |
מידע נוסף זמין במדריך לניהול הגדרות השפה.
ניהול הגדרות ההאצלה
כדי לנהל הקצאת הרשאות ב-Gmail API, צריך להשתמש במשאב Delegates.
| ההגדרה הקודמת | הגדרה חדשה |
|---|---|
| כתובת | delegateEmail |
| status | 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.