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

时间:2021-03-29 12:22:50

标签: node.js google-slides-api google-slides

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

1 个答案:

答案 0 :(得分:1)

我相信你的目标和你目前的情况如下。

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

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

示例脚本:

在此示例脚本中,请使用从您的脚本中检索到的 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方法从谷歌幻灯片中获取第5张幻灯片的页面对象ID,并创建3次复制请求体,使用batchUpdate方法请求。

注意:

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

参考: