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

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

مَراجع

للحصول على معلومات تفصيلية حول هذه الخدمة، راجِع المستندات المرجعية لواجهة Gmail API. مثل جميع الخدمات المتقدمة في "برمجة التطبيقات"، تستخدم خدمة 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);
  }
}