【问题标题】:Is it possible to duplicate a specific slide using google slide api?是否可以使用 google slide api 复制特定幻灯片?
【发布时间】:2021-03-29 12:22:50
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    在这种情况下,我认为可以使用 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方法从Google Slides中获取第5张幻灯片的页面对象ID,并创建复制3次的请求体,使用batchUpdate方法请求。

    注意:

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

    参考资料:

    【讨论】:

    • 谢谢!像魅力一样工作!
    • @developer55555 感谢您的回复。我很高兴你的问题得到了解决。也谢谢你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多