是否可以使用 google 幻灯片 api 复制特定幻灯片?

Is it possible to duplicate a specific slide using google slide api?

Google 幻灯片 Api (Node JS / JavaScript) - 是否可以创建特定幻灯片的副本,例如假设需要复制第 5 号幻灯片 3次?

我认为您的目标和现状如下。

  • 您想将 Google 幻灯片中的特定幻灯片复制几次。
    • 在你的问题中,你想复制5号幻灯片3次。
  • 您想使用 Node.js 的 googleapis 实现此目的。
  • 您已经能够使用 Slides API.
  • 获取和放置 Google Slides 的值

遇到这种情况,我想到可以使用Slides中batchUpdate的方法API

示例脚本:

在此示例脚本中,请使用从您的脚本中检索到的 auth。如果想看Node.js的授权脚本,可以看Node.js的快速入门。 Ref这种情况下,请使用https://www.googleapis.com/auth/presentations的范围。

const presentationId = "###"; // Please set the presentation ID (Google Slides ID).
const pageNumber = 5; // Please set the page number. In your question, it's 5.
const numberOfCopy = 3; // Please set the number of copy. In your question, it's 3.

const slides = google.slides({ version: "v1", auth: auth });
slides.presentations.get(
  {
    presentationId: presentationId,
    fields: "slides(objectId)",
  },
  (err, res) => {
    if (err) {
      console.log(err);
      return;
    }
    const pageObjectId = res.data.slides[pageNumber - 1].objectId;
    const requests = [];
    for (let i = 0; i < numberOfCopy; i++) {
      requests.push({ duplicateObject: { objectId: pageObjectId } });
    }
    slides.presentations.batchUpdate(
      {
        presentationId: presentationId,
        resource: { requests: requests },
      },
      (err, res) => {
        if (err) {
          console.log(err);
          return;
        }
        console.log(res.data);
      }
    );
  }
);
  • 当上述脚本为运行时,使用get方法从Google幻灯片中获取第5张幻灯片的页面对象ID,并创建复制3次的请求体并请求它使用 batchUpdate 方法。

注:

  • 在此示例脚本中,假设可以使用从您的授权脚本中检索到的 auth。请注意这一点。

参考文献: