خدمة نقل بيانات مجموعات حزمة تطوير البرامج (SDK) للمشرف

برنامج نصي لنقل الرسائل الإلكترونية إلى أرشيفات المناقشات في "مجموعات Google"

تتيح لك خدمة "نقل بيانات المجموعات" في Admin SDK استخدام Groups Migration API في Admin SDK ضمن برمجة تطبيقات Google. تتيح واجهة برمجة التطبيقات هذه لمشرفي نطاقات Google Workspace (بما في ذلك المورّدين) إمكانية نقل الرسائل الإلكترونية من المجلدات العامة وقوائم التوزيع إلى أرشيفات المناقشات في "مجموعات Google".

هذه خدمة متقدّمة يجب تفعيلها قبل الاستخدام.

مراجع

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

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

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

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

نقل الرسائل الإلكترونية من Gmail إلى مجموعة Google

يحصل هذا النموذج على ثلاث رسائل منسَّقة بتنسيق RFC 822 من كل من أحدث ثلاث سلاسل محادثات في صندوق البريد الوارد في Gmail الخاص بالمستخدم، وينشئ كائنًا ثنائيًا كبيرًا من محتوى البريد الإلكتروني (بما في ذلك المرفقات)، ويدرجه في مجموعة Google ضمن النطاق.

advanced/adminSDK.gs
/**
 * Gets three RFC822 formatted messages from the each of the latest three
 * threads in the user's Gmail inbox, creates a blob from the email content
 * (including attachments), and inserts it in a Google Group in the domain.
 */
function migrateMessages() {
  // TODO (developer) - Replace groupId value with yours
  const groupId = "exampleGroup@example.com";
  const messagesToMigrate = getRecentMessagesContent();
  for (const messageContent of messagesToMigrate) {
    const contentBlob = Utilities.newBlob(messageContent, "message/rfc822");
    AdminGroupsMigration.Archive.insert(groupId, contentBlob);
  }
}

/**
 * Gets a list of recent messages' content from the user's Gmail account.
 * By default, fetches 3 messages from the latest 3 threads.
 *
 * @return {Array} the messages' content.
 */
function getRecentMessagesContent() {
  const NUM_THREADS = 3;
  const NUM_MESSAGES = 3;
  const threads = GmailApp.getInboxThreads(0, NUM_THREADS);
  const messages = GmailApp.getMessagesForThreads(threads);
  const messagesContent = [];
  for (let i = 0; i < messages.length; i++) {
    for (let j = 0; j < NUM_MESSAGES; j++) {
      const message = messages[i][j];
      if (message) {
        messagesContent.push(message.getRawContent());
      }
    }
  }
  return messagesContent;
}