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

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

مَراجع

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