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

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

مَراجع

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

للإبلاغ عن المشاكل والعثور على خدمات دعم أخرى، يُرجى الاطّلاع على دليل دعم "العروض التقديمية من Google".

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

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

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

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

إعدادات متقدّمة/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
});