ارائه ها را ایجاد و مدیریت کنید

این صفحه نحوه انجام برخی وظایف سطح بالا شامل ارائه‌ها، مانند موارد زیر را شرح می‌دهد:

  • ایجاد یک ارائه
  • کپی کردن یک ارائه موجود

پاراگراف‌های بعدی این وظایف را به تفصیل شرح می‌دهند.

ایجاد یک ارائه خالی

برای ایجاد یک ارائه، از متد create در مجموعه ارائه‌ها ، همانطور که در مثال زیر نشان داده شده است، استفاده کنید.

این مثال یک ارائه خالی با عنوان مشخص شده ایجاد می‌کند.

اسکریپت برنامه‌ها

اسلایدها/api/Snippets.gs
/**
 * Creates a presentation
 * @returns {*} the created presentation
 */
function createPresentation() {
  try {
    const presentation = Slides.Presentations.create({
      title: title,
    });
    console.log(
      "Created presentation with ID: %s",
      presentation.presentationId,
    );

    return presentation;
  } catch (err) {
    // TODO (Developer) - Handle exception
    console.log("Failed with error: %s", err.error);
  }
}

برو

اسلایدها/قطعه‌ها/ارائه‌ها.go
// Create a presentation and request a PresentationId.
p := &slides.Presentation{
	Title: "Title",
}
presentation, err := slidesService.Presentations.Create(p).Fields(
	"presentationId",
).Do()
if err != nil {
	log.Fatalf("Unable to create presentation. %v", err)
}
fmt.Printf("Created presentation with ID: %s", presentation.PresentationId)

جاوا

اسلایدها/قطعه کد/src/main/java/CreatePresentation.java
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.slides.v1.Slides;
import com.google.api.services.slides.v1.SlidesScopes;
import com.google.api.services.slides.v1.model.Presentation;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;

import java.io.IOException;
import java.util.Collections;

/* Class to demonstrate the use of Slides Create Presentation API */
public class CreatePresentation {
  /**
   * Creates a new presentation.
   *
   * @param title - the name of the presentation to be created
   * @return presentation id
   * @throws IOException - if credentials file not found.
   */
  public static String createPresentation(String title) throws IOException {
        /* Load pre-authorized user credentials from the environment.
           TODO(developer) - See https://developers.google.com/identity for
            guides on implementing OAuth2 for your application. */
    GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
        .createScoped(Collections.singleton(SlidesScopes.PRESENTATIONS));
    HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
        credentials);

    // Create the slides API client
    Slides service = new Slides.Builder(new NetHttpTransport(),
        GsonFactory.getDefaultInstance(),
        requestInitializer)
        .setApplicationName("Slides samples")
        .build();

    // Creates a blank presentation with a specified title.
    Presentation presentation = new Presentation()
        .setTitle(title);
    presentation = service.presentations().create(presentation)
        .setFields("presentationId")
        .execute();
    // Prints the newly created presentation id.
    System.out.println("Created presentation with ID: " + presentation.getPresentationId());
    return presentation.getPresentationId();
  }
}

جاوا اسکریپت

اسلایدها/قطعه‌ها/slides_create_presentation.js
function createPresentation(title, callback) {
  try {
    gapi.client.slides.presentations.create({
      title: title,
    }).then((response) => {
      console.log(`Created presentation with ID: ${response.result.presentationId}`);
      if (callback) callback(response);
    });
  } catch (err) {
    document.getElementById('content').innerText = err.message;
    return;
  }
}

نود جی اس

اسلایدها/قطعه‌ها/slides_create_presentation.js
import {GoogleAuth} from 'google-auth-library';
import {google} from 'googleapis';

/**
 * Creates a new Google Slides presentation.
 * @param {string} title The title for the new presentation.
 * @return {Promise<object>} The created presentation.
 */
async function createPresentation(title) {
  // Authenticate with Google and get an authorized client.
  const auth = new GoogleAuth({
    scopes: 'https://www.googleapis.com/auth/presentations',
  });

  // Create a new Slides API client.
  const service = google.slides({version: 'v1', auth});

  // Create a new presentation with the specified title.
  const presentation = await service.presentations.create({
    title,
  });

  // Log the ID of the new presentation.
  console.log(
    `Created presentation with ID: ${presentation.data.presentationId}`,
  );
  return presentation;
}

پی اچ پی

اسلایدها/قطعه کد/src/SlidesCreatePresentation.php
<?php
use Google\Client;
use Google\Service\Drive;
use Google\Service\Slides;
use Google\Service\Slides\Request;

function createPresentation($title)
{
    /* Load pre-authorized user credentials from the environment.
       TODO(developer) - See https://developers.google.com/identity for
        guides on implementing OAuth2 for your application. */
    $client = new Google\Client();
    $client->useApplicationDefaultCredentials();
    $client->addScope(Google\Service\Drive::DRIVE);
    $service = new Google_Service_Slides($client);
    try {
        $presentation = new Google_Service_Slides_Presentation($title);
        //creating a presentation
        $presentation = $service->presentations->create($presentation);
        printf("Created presentation with ID: %s\n", $presentation->presentationId);
        return $presentation;
    } catch (Exception $e) {
        echo 'Message: ' . $e->getMessage();
    }
}

پایتون

اسلایدها/قطعه‌ها/slides_create_presentation.py
import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError


def create_presentation(title):
  """
  Creates the Presentation the user has access to.
  Load pre-authorized user credentials from the environment.
  TODO(developer) - See https://developers.google.com/identity
  for guides on implementing OAuth2 for the application.
  """
  creds, _ = google.auth.default()
  # pylint: disable=maybe-no-member
  try:
    service = build("slides", "v1", credentials=creds)

    body = {"title": title}
    presentation = service.presentations().create(body=body).execute()
    print(
        f"Created presentation with ID:{(presentation.get('presentationId'))}"
    )
    return presentation

  except HttpError as error:
    print(f"An error occurred: {error}")
    print("presentation not created")
    return error


if __name__ == "__main__":
  # Put the title of the presentation

  create_presentation("finalp")

روبی

اسلایدها/قطعه‌ها/lib/file_snippets.rb
body = Google::Apis::SlidesV1::Presentation.new
body.title = title
presentation = slides_service.create_presentation(body)
puts "Created presentation with ID: #{presentation.presentation_id}"

کار با پوشه‌های گوگل درایو

هیچ گزینه‌ای برای ایجاد مستقیم یک ارائه در یک پوشه مشخص شده در درایو با استفاده از API اسلایدهای گوگل وجود ندارد. به طور پیش‌فرض، ارائه ایجاد شده در پوشه ریشه کاربر در درایو ذخیره می‌شود.

با این حال، دو گزینه جایگزین برای ذخیره فایل در پوشه Drive وجود دارد:

  • پس از ایجاد ارائه، آن را با استفاده از متد files.update از Drive API به یک پوشه خاص منتقل کنید. برای اطلاعات بیشتر در مورد جابجایی فایل‌ها، به «انتقال فایل‌ها بین پوشه‌ها» مراجعه کنید.
  • با استفاده از متد files.create از Drive API، یک ارائه خالی به یک پوشه اضافه کنید و application/vnd.google-apps.presentation به عنوان mimeType مشخص کنید. برای اطلاعات بیشتر در مورد ایجاد فایل‌ها، به «ایجاد فایل در یک پوشه» مراجعه کنید.

برای هر یک از گزینه‌های جایگزین، باید محدوده‌های مناسب Drive API را برای تأیید فراخوانی اضافه کنید.

برای جابجایی یا ایجاد فایل در پوشه درایو مشترک، به «پیاده‌سازی پشتیبانی از درایو مشترک» مراجعه کنید.

کپی کردن یک ارائه موجود

برای کپی کردن یک ارائه، از متد files().copy در Drive API استفاده کنید.

مثال زیر یک ارائه موجود را با استفاده از یک رشته ارائه شده برای عنوان ارائه و نام فایل Drive جدید کپی می‌کند.

اسکریپت برنامه‌ها

اسلایدها/api/Snippets.gs
/**
 * create a presentation and copy it
 * @param {string} presentationId - ID of presentation to copy
 * @returns {*} the copy's presentation id
 */
function copyPresentation(presentationId) {
  const copyTitle = "Copy Title";

  let copyFile = {
    title: copyTitle,
    parents: [{ id: "root" }],
  };
  try {
    copyFile = Drive.Files.copy(copyFile, presentationId);
    // (optional) copyFile.id can be returned directly
    const presentationCopyId = copyFile.id;

    return presentationCopyId;
  } catch (err) {
    // TODO (Developer) - Handle exception
    console.log("Failed with error: %s", err.error);
  }
}

برو

اسلایدها/قطعه‌ها/ارائه‌ها.go
// Copy a presentation.
file := drive.File{
	Title: title,
}
presentationCopyFile, err := driveService.Files.Copy(id, &file).Do()
if err != nil {
	log.Fatalf("Unable to copy presentation. %v", err)
}
presentationCopyId := presentationCopyFile.Id

جاوا

اسلایدها/قطعه کد/src/main/java/CopyPresentation.java
import com.google.api.client.googleapis.json.GoogleJsonError;
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.drive.Drive;
import com.google.api.services.drive.model.File;
import com.google.api.services.slides.v1.SlidesScopes;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;

import java.io.IOException;
import java.util.Collections;

/* Class to demonstrate the use of Slides Copy Presentation API */
public class CopyPresentation {
  /**
   * Copy an existing presentation.
   *
   * @param presentationId - id of the presentation.
   * @param copyTitle      - New title of the presentation.
   * @return presentation id
   * @throws IOException - if credentials file not found.
   */
  public static String copyPresentation(String presentationId, String copyTitle)
      throws IOException {
        /* Load pre-authorized user credentials from the environment.
           TODO(developer) - See https://developers.google.com/identity for
            guides on implementing OAuth2 for your application. */
    GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
        .createScoped(Collections.singleton(SlidesScopes.DRIVE));
    HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
        credentials);

    // Create the drive API client
    Drive driveService = new Drive.Builder(new NetHttpTransport(),
        GsonFactory.getDefaultInstance(),
        requestInitializer)
        .setApplicationName("Slides samples")
        .build();

    String presentationCopyId = null;
    try {
      // Copies an existing presentation using specified presentation title.
      File copyMetadata = new File().setName(copyTitle);
      File presentationCopyFile =
          driveService.files().copy(presentationId, copyMetadata).execute();
      presentationCopyId = presentationCopyFile.getId();
      // Prints the new copied presentation id.
      System.out.println("New copied presentation id " + presentationCopyId);
    } catch (GoogleJsonResponseException e) {
      // TODO(developer) - handle error appropriately
      GoogleJsonError error = e.getDetails();
      if (error.getCode() == 404) {
        System.out.printf("Presentation not found with id '%s'.\n", presentationId);
      } else {
        throw e;
      }
    }
    return presentationCopyId;
  }
}

جاوا اسکریپت

اسلایدها/قطعه کدها/slides_copy_presentation.js
function copyPresentation(presentationId, copyTitle, callback) {
  const request = {
    name: copyTitle,
  };
  try {
    gapi.client.drive.files.copy({
      fileId: presentationId,
      resource: request,
    }).then((driveResponse) => {
      const presentationCopyId = driveResponse.result.id;
      if (callback) callback(presentationCopyId);
      console.log('create copy_presentation with id', presentationCopyId);
    });
  } catch (err) {
    document.getElementById('content').innerText = err.message;
    return;
  }
}

نود جی اس

اسلایدها/قطعه کدها/slides_copy_presentation.js
import {GoogleAuth} from 'google-auth-library';
import {google} from 'googleapis';

/**
 * Copies a presentation.
 * @param {string} presentationId The ID of the presentation to copy.
 * @param {string} copyTitle The title for the copied presentation.
 * @return {Promise<object>} The response from the copy request.
 */
async function copyPresentation(presentationId, copyTitle) {
  // Authenticate with Google and get an authorized client.
  const auth = new GoogleAuth({
    scopes: 'https://www.googleapis.com/auth/drive',
  });

  // Create a new Drive API client.
  const service = google.drive({version: 'v2', auth});

  // The request to copy the presentation.
  const request = {
    name: copyTitle,
  };

  // Copy the presentation.
  const driveResponse = await service.files.copy({
    fileId: presentationId,
    requestBody: request,
  });

  // Log the ID of the copied presentation.
  const presentationCopyId = driveResponse.data.id;
  console.log(`Created copied presentation with ID: ${presentationCopyId}`);
  return driveResponse;
}

پی اچ پی

اسلایدها/قطعه کد/src/SlidesCopyPresentation.php
<?php

use Google\Service\Drive;
use Google\Client;
use Google\Service\Drive\DriveFile;



function copyPresentation($presentationId, $copyTitle)
{
    /* Load pre-authorized user credentials from the environment.
   TODO(developer) - See https://developers.google.com/identity for
    guides on implementing OAuth2 for your application. */
    $client = new Google\Client();
    $client->useApplicationDefaultCredentials();
    $client->addScope(Google\Service\Drive::DRIVE);
    $driveService = new Google_Service_Drive($client);
    try {

        $copy = new Google_Service_Drive_DriveFile(array(
            'name' => $copyTitle
        ));
        $driveResponse = $driveService->files->copy($presentationId, $copy);
        $presentationCopyId = $driveResponse->id;
        printf("copyCreated at:%s\n ", $presentationCopyId);
        return $presentationCopyId;
    } catch (Exception $e) {
        echo 'Message: ' . $e->getMessage();
    }
}

پایتون

اسلایدها/قطعه‌ها/slides_copy_presentation.py
import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError


def copy_presentation(presentation_id, copy_title):
  """
  Creates the copy Presentation the user has access to.
  Load pre-authorized user credentials from the environment.
  TODO(developer) - See https://developers.google.com/identity
  for guides on implementing OAuth2 for the application.
  """

  creds, _ = google.auth.default()
  # pylint: disable=maybe-no-member
  try:
    drive_service = build("drive", "v3", credentials=creds)
    body = {"name": copy_title}
    drive_response = (
        drive_service.files().copy(fileId=presentation_id, body=body).execute()
    )
    presentation_copy_id = drive_response.get("id")

  except HttpError as error:
    print(f"An error occurred: {error}")
    print("Presentations  not copied")
    return error

  return presentation_copy_id

روبی

اسلایدها/قطعه‌ها/lib/file_snippets.rb
body = Google::Apis::SlidesV1::Presentation.new
body.title = copy_title
drive_response = drive_service.copy_file(presentation_id, body)
puts drive_response
presentation_copy_id = drive_response.id

توجه داشته باشید که برای تأیید تماس باید از یک محدوده API درایو مناسب استفاده کنید.