שירות Gmail מתקדם

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

חומרי עזר

מידע מפורט על השירות הזה זמין במאמרי העזרה של Gmail API. כמו כל השירותים המתקדמים ב-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);
  }
}