שירות Gmail מתקדם

השירות המתקדם של Gmail מאפשר להשתמש ב-Gmail API ב-Apps Script. בדומה לשירות Gmail המובנה של Apps Script, ה-API הזה מאפשר לסקריפטים למצוא ולשנות שרשורים, הודעות ותוויות בתיבת הדואר של Gmail. ברוב המקרים, קל יותר להשתמש בשירות המובנה, אבל השירות המתקדם הזה מספק כמה תכונות נוספות וגישה למידע מפורט יותר על התוכן ב-Gmail.

חומר עזר

מידע מפורט על השירות הזה זמין במסמכי התיעוד של ממשק ה-API של Gmail. בדומה לכל השירותים המתקדמים ב-Apps Script, גם השירות המתקדם של Gmail משתמש באותם אובייקטים, שיטות ופרמטרים כמו ה-API הציבורי. מידע נוסף זמין במאמר איך נקבעות חתימות של שיטות.

במדריך התמיכה ל-Gmail מוסבר איך לדווח על בעיות ואיך לקבל תמיכה בדרכים אחרות.

קוד לדוגמה

הקוד לדוגמה שבהמשך משתמש בגרסה 1 של ה-API.

הצגת רשימה של פרטי תוויות

הדוגמה הבאה ממחישה איך ליצור רשימה של כל פרטי התוויות של המשתמש. זה כולל את שם התווית, הסוג, המזהה והגדרות החשיפה.

advanced/gmail.gs
/**
 * Lists the user's labels, including name, type,
 * ID and visibility information.
 */
function listLabelInfo() {
  try {
    const response =
      Gmail.Users.Labels.list('me');
    for (let i = 0; i < response.labels.length; i++) {
      const label = response.labels[i];
      console.log(JSON.stringify(label));
    }
  } catch (err) {
    console.log(err);
  }
}

הצגת רשימה של קטעי טקסט בתיבת הדואר הנכנס

הדוגמה הבאה ממחישה איך ליצור רשימה של קטעי טקסט שמשויכים לכל שרשור בתיבת הדואר הנכנס של המשתמש. שימו לב לשימוש באסימוני דפים כדי לגשת לרשימת התוצאות המלאה.

advanced/gmail.gs
/**
 * Lists, for each thread in the user's Inbox, a
 * snippet associated with that thread.
 */
function listInboxSnippets() {
  try {
    let pageToken;
    do {
      const threadList = Gmail.Users.Threads.list('me', {
        q: 'label:inbox',
        pageToken: pageToken
      });
      if (threadList.threads && threadList.threads.length > 0) {
        threadList.threads.forEach(function(thread) {
          console.log('Snippet: %s', thread.snippet);
        });
      }
      pageToken = threadList.nextPageToken;
    } while (pageToken);
  } catch (err) {
    console.log(err);
  }
}

הצגת רשימה של ההיסטוריה מהתקופה האחרונה

הדוגמה הבאה מדגימה איך לתעד את היסטוריית הפעילות האחרונה. באופן ספציפי, הדוגמה הזו משחזרת את המזהה של רשומת ההיסטוריה המשויכת להודעה האחרונה שנשלחה של המשתמש, ולאחר מכן רושמת את מזהי ההודעות של כל הודעה שהשתנתה מאז. כל הודעה ששונתה מתועדת רק פעם אחת, ללא קשר למספר אירועי השינוי ששמורים ברשומות ההיסטוריה. שימו לב להשתמש באסימוני דפים כדי לגשת לרשימת התוצאות המלאה.

advanced/gmail.gs
/**
 * Gets a history record ID associated with the most
 * recently sent message, then logs all the message IDs
 * that have changed since that message was sent.
 */
function logRecentHistory() {
  try {
    // Get the history ID associated with the most recent
    // sent message.
    const sent = Gmail.Users.Threads.list('me', {
      q: 'label:sent',
      maxResults: 1
    });
    if (!sent.threads || !sent.threads[0]) {
      console.log('No sent threads found.');
      return;
    }
    const historyId = sent.threads[0].historyId;

    // Log the ID of each message changed since the most
    // recent message was sent.
    let pageToken;
    const changed = [];
    do {
      const recordList = Gmail.Users.History.list('me', {
        startHistoryId: historyId,
        pageToken: pageToken
      });
      const history = recordList.history;
      if (history && history.length > 0) {
        history.forEach(function(record) {
          record.messages.forEach(function(message) {
            if (changed.indexOf(message.id) === -1) {
              changed.push(message.id);
            }
          });
        });
      }
      pageToken = recordList.nextPageToken;
    } while (pageToken);

    changed.forEach(function(id) {
      console.log('Message Changed: %s', id);
    });
  } catch (err) {
    console.log(err);
  }
}