خدمة "العروض التقديمية من Google"

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

تتيح لك خدمة "العروض التقديمية من Google" الوصول إلى واجهة برمجة تطبيقات "العروض التقديمية من Google" باستخدام "برمجة التطبيقات". تسمح هذه الخدمة للنص البرمجي بقراءة المحتوى وتعديله في "العروض التقديمية من Google".

مَراجع

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

للإبلاغ عن المشكلات والعثور على دعم آخر، اطلع على دليل دعم العروض التقديمية.

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

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

إنشاء عرض تقديمي جديد

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

متقدم/slides.gs
/**
 * Create a new presentation.
 * @return {string} presentation Id.
 * @see https://developers.google.com/slides/api/reference/rest/v1/presentations/create
 */
function createPresentation() {
  try {
    const presentation =
      Slides.Presentations.create({'title': 'MyNewPresentation'});
    console.log('Created presentation with ID: ' + presentation.presentationId);
    return presentation.presentationId;
  } catch (e) {
    // TODO (developer) - Handle exception
    console.log('Failed with error %s', e.message);
  }
}

إنشاء شريحة جديدة

يوضح المثال التالي كيفية إنشاء شريحة جديدة في عرض تقديمي، في فهرس محدد وبتخطيط محدد مسبقًا. ويوازي هذا المثال مع نموذج الوصفة إنشاء شريحة جديدة.

متقدم/slides.gs
/**
 * Create a new slide.
 * @param {string} presentationId The presentation to add the slide to.
 * @return {Object} slide
 * @see https://developers.google.com/slides/api/reference/rest/v1/presentations/batchUpdate
 */
function createSlide(presentationId) {
  // You can specify the ID to use for the slide, as long as it's unique.
  const pageId = Utilities.getUuid();

  const requests = [{
    'createSlide': {
      'objectId': pageId,
      'insertionIndex': 1,
      'slideLayoutReference': {
        'predefinedLayout': 'TITLE_AND_TWO_COLUMNS'
      }
    }
  }];
  try {
    const slide =
      Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
    console.log('Created Slide with ID: ' + slide.replies[0].createSlide.objectId);
    return slide;
  } catch (e) {
    // TODO (developer) - Handle Exception
    console.log('Failed with error %s', e.message);
  }
}

قراءة أرقام تعريف كائنات عناصر الصفحة

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

متقدم/slides.gs
/**
 * Read page element IDs.
 * @param {string} presentationId The presentation to read from.
 * @param {string} pageId The page to read from.
 * @return {Object} response
 * @see https://developers.google.com/slides/api/reference/rest/v1/presentations.pages/get
 */
function readPageElementIds(presentationId, pageId) {
  // You can use a field mask to limit the data the API retrieves
  // in a get request, or what fields are updated in an batchUpdate.
  try {
    const response = Slides.Presentations.Pages.get(
        presentationId, pageId, {'fields': 'pageElements.objectId'});
    console.log(response);
    return response;
  } catch (e) {
    // TODO (developer) - Handle Exception
    console.log('Failed with error %s', e.message);
  }
}

إضافة مربّع نص جديد

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

متقدم/slides.gs
/**
 * Add a new text box with text to a page.
 * @param {string} presentationId The presentation ID.
 * @param {string} pageId The page ID.
 * @return {Object} response
 * @see https://developers.google.com/slides/api/reference/rest/v1/presentations/batchUpdate
 */
function addTextBox(presentationId, pageId) {
  // You can specify the ID to use for elements you create,
  // as long as the ID is unique.
  const pageElementId = Utilities.getUuid();

  const requests = [{
    'createShape': {
      'objectId': pageElementId,
      'shapeType': 'TEXT_BOX',
      'elementProperties': {
        'pageObjectId': pageId,
        'size': {
          'width': {
            'magnitude': 150,
            'unit': 'PT'
          },
          'height': {
            'magnitude': 50,
            'unit': 'PT'
          }
        },
        'transform': {
          'scaleX': 1,
          'scaleY': 1,
          'translateX': 200,
          'translateY': 100,
          'unit': 'PT'
        }
      }
    }
  }, {
    'insertText': {
      'objectId': pageElementId,
      'text': 'My Added Text Box',
      'insertionIndex': 0
    }
  }];
  try {
    const response =
      Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
    console.log('Created Textbox with ID: ' +
      response.replies[0].createShape.objectId);
    return response;
  } catch (e) {
    // TODO (developer) - Handle Exception
    console.log('Failed with error %s', e.message);
  }
}

تنسيق نص الشكل

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

متقدم/slides.gs
/**
 * Format the text in a shape.
 * @param {string} presentationId The presentation ID.
 * @param {string} shapeId The shape ID.
 * @return {Object} replies
 * @see https://developers.google.com/slides/api/reference/rest/v1/presentations/batchUpdate
 */
function formatShapeText(presentationId, shapeId) {
  const requests = [{
    'updateTextStyle': {
      'objectId': shapeId,
      'fields': 'foregroundColor,bold,italic,fontFamily,fontSize,underline',
      'style': {
        'foregroundColor': {
          'opaqueColor': {
            'themeColor': 'ACCENT5'
          }
        },
        'bold': true,
        'italic': true,
        'underline': true,
        'fontFamily': 'Corsiva',
        'fontSize': {
          'magnitude': 18,
          'unit': 'PT'
        }
      },
      'textRange': {
        'type': 'ALL'
      }
    }
  }];
  try {
    const response =
      Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
    return response.replies;
  } catch (e) {
    // TODO (developer) - Handle Exception
    console.log('Failed with error %s', e.message);
  }
}

أفضل الممارسات

تحديثات مجمعة

عند استخدام خدمة "العروض التقديمية من Google" المتقدمة، يمكنك دمج طلبات متعددة في مصفوفة بدلاً من طلب batchUpdate بشكل متكرّر.

ما لا يجب — الاتصال بـ batchUpdate في حلقة متتابعة.

var titles = ["slide 1", "slide 2"];
for (var i = 0; i < titles.length; i++) {
  Slides.Presentations.batchUpdate(preso, {
    requests: [{
      createSlide: ...
    }]
  });
}

ما يجب فعله — اتصل بـ batchUpdate مع مجموعة من التحديثات.

var requests = [];
var titles = ["slide 1", "slide 2"];
for (var i = 0; i < titles.length; i++) {
  requests.push({ createSlide: ... });
}

Slides.Presentations.batchUpdate(preso, {
  requests: requests
});