12

我想知道是否有一种方法可以在 Google 幻灯片中以编程方式创建演示文稿。因此,例如,如果基础数据发生变化,我可以只刷新卡片组,而无需对所有图表等进行大量复制粘贴。

类似于使用 markdown 和 R slidify 来生成数据驱动的 PDF 演示文稿。我的最终产品需要是一个漂亮漂亮的 Google 幻灯片演示文稿。

这是我可以使用 Google Drive API 做的事情吗?我不确定 App Script 是否可以像用于表格一样用于幻灯片。

我希望这是一个足够普遍的问题,存在解决方案。

一种选择是自动生成 PDF,然后手动导入 Google 幻灯片。问题是由于转换错误和缺少其他幻灯片功能,这种方法有点受限。

非常感谢任何输入。

4

4 回答 4

11

现在是2018 年,这个老问题的好消息(和答案!):

  • Google Slides REST API于 2016年11 月推出……这是它的发布帖子和我为帮助您入门而制作的第一个开发者视频。比视频更短的代码示例是文档中的快速入门(有多种语言版本)。如果您是 Google API 的新手,我建议您先观看此视频,然后观看视频,最后观看视频,以了解如何使用它们。代码示例使用 Python,但如果您不是 Python 开发人员,请假装它是伪代码,因为Google APIs Client Libraries支持许多语言。:-)
  • 如果您使用 JS 编写代码并希望 Google 托管 + 运行您的应用程序,Google Apps 脚本中的Slides 服务于2017 年 9 月推出......这是它的发布帖子和我为帮助您入门而制作的第一个开发者视频。这也是幻灯片插件背后的相同技术。如果您是 Apps 脚本的新手,我建议您观看此视频以了解它是什么以及如何使用它。然后查看其视频库以获取更多使用 Apps 脚本的示例。(诚​​然,与 REST API 相比,使用 Apps 脚本编写代码更容易,这使得开发人员更“上瘾”......你被警告了!):-)
  • 可以通过其开发者视频库找到有关以编程方式访问 Google 幻灯片的其他视频。有关此技术和其他 G Suite 开发人员技术的视频可以在我制作的 G Suite Dev Show 系列中找到。
  • 没有这方面的视频,但是我的同事创建了一个开源的Markdown-to-Google 幻灯片生成器(用 Node.js 编写),您可能会感兴趣,它代表使用幻灯片 API 的“参考应用程序”之一。您可以在文档的示例页面上找到有关此应用程序以及其他应用程序的更多信息。
  • 也没有视频,但是想要快速了解如何使用此 API 的 Node.js 开发人员应该尝试Slides API代码实验室,您可以在其中构建一个使用Google BigQuery分析开源许可证并生成一个应用程序的应用程序报告演示...让您通过一个教程学习两种 Google Cloud 技术!:-)
于 2018-04-18T05:23:01.267 回答
7

Google 幻灯片 API于 2016 年 11 月 9日推出。它提供了阅读、创建和编辑 Google 幻灯片演示文稿的能力。

目前,Apps Script 中还没有等效的服务,但您可以使用Apps Script OAuth2 库UrlFetchApp在脚本中调用 API。

于 2016-11-10T14:52:25.557 回答
2

Apps 脚本中的一个示例:

在开发者控制台中启用 Slides API:

  1. 单击资源 > 开发人员控制台项目 > [Your_Project_Name]
  2. 点击Enable API,搜索Slides并启用 Slides API。

用于UrlFetchApp向 Slides API 发送经过身份验证的请求

作为 Apps 脚本中的一个简单示例,请考虑获取最新版本的演示文稿( presentations.get)。

// Add your presentation ID
var presentationId = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

// Force add the Drive scope (as this comment *will* get parsed
// and trigger a popup to authorize Drive access)
// DriveApp.createFile('') 

// URL formed as per the Slides REST documentation
var url = 'https://slides.googleapis.com/v1/presentations/' + presentationId;
var options = {
  headers: {
    Authorization: 'Bearer ' + ScriptApp.getOAuthToken()
  }
};
var response = UrlFetchApp.fetch(url, options);

// Turn this back into a JS Object so it can be used.
var presentation = JSON.parse(response.getContentText());

// Log the ID of the presentation
Logger.log(presentation.presentationId);

// Log the number of slides...
Logger.log(presentation.slides.length);

// Loop through the slides
var slides = presentation.slides;
slides.forEach(function(slide) {
  // ... do something with each slide...    
});

的结构presentation记录在 REST 参考中。借助REST 参考,此示例可以扩展为与任何 Slides API 请求和响应一起使用。

于 2016-11-25T16:15:58.417 回答