خدمة Gmail المتقدِّمة

تتيح لك خدمة Gmail المتقدّمة استخدام Gmail API في Apps Script. تمامًا مثل خدمة Gmail المضمّنة في Apps Script، تسمح واجهة برمجة التطبيقات هذه للنصوص البرمجية بالعثور على سلاسل المحادثات والرسائل والتصنيفات وتعديلها في صندوق بريد Gmail. في معظم الحالات، تكون الخدمة المضمّنة أسهل في الاستخدام، ولكن تقدّم هذه الخدمة المتقدمة بعض الميزات الإضافية والوصول إلى معلومات أكثر تفصيلاً عن محتوى Gmail.

مراجع

للحصول على معلومات تفصيلية عن هذه الخدمة، يُرجى الاطّلاع على المستندات المرجعية لواجهة برمجة التطبيقات Gmail API. مثل جميع الخدمات المتقدّمة في Apps Script، تستخدم خدمة Gmail المتقدّمة العناصر والأساليب والمَعلمات نفسها المستخدَمة في واجهة برمجة التطبيقات المتاحة للجميع. لمزيد من المعلومات، اطّلِع على كيفية تحديد توقيعات الطرق.

للإبلاغ عن المشاكل والعثور على دعم آخر، يُرجى الاطّلاع على دليل دعم Gmail.

نموذج التعليمات البرمجية

يستخدم نموذج الرمز البرمجي أدناه الإصدار 1 من واجهة برمجة التطبيقات.

إدراج معلومات التصنيف

يوضّح المثال التالي كيفية إدراج جميع معلومات تصنيف المستخدم. ويشمل ذلك اسم التصنيف ونوعه ورقم تعريفه وإعدادات مستوى عرضه.

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);
  }
}