使用API​​将一张幻灯片从Google幻灯片复制到新的演示文稿中

我希望使用Google Drive API创建新的Google幻灯片,但是从另一个以前的演示文稿复制了一张幻灯片。

我的问题是,是否可以构建一个新的Google幻灯片并将幻灯片(单个)插入新幻灯片中。

或者是否可以从Google演示文稿中删除幻灯片?

虽然不完美,但您可以使用新的Google幻灯片API来近距离接触。 您可以从源演示文稿中读取幻灯片,然后尝试在目标演示文稿中复制它。 目前并非所有幻灯片function都支持API,因此可能会有一些信息丢失的过程。

(2017年2月)截至2016年11月,随着Google Slides API的发布 ,OP现在要求的解决方案的替代方案现在可以实现,尽管不是直接使用API​​。 解决方法是您要复制的ONE SLIDE在其自己的独立文件中。 然后,您可以使用两个 Google API实现这一目标:Slides API(用于执行文档级function,如添加新幻灯片)以及Google Drive API (用于文件导向访问,如复制)。

听起来你正在使用适用于Ruby的Google API客户端库 ,所以你就在那里。 下一步是在Google Developers Console中创建一个项目,同时启用Google云端硬盘和Google幻灯片API,然后在创建OAuth2凭据后下载client_secret*.json文件。

为了帮助您入门,这里是Drive API的Ruby快速入门示例 ,这里是Slides API的Ruby快速入门 。 如果你对Python没有“过敏”(如果你是,只是假装它是伪代码;)),我已经制作了几个video,其中包含更多“真实世界”的使用Slides API的例子,你可以从中学习并迁移到Ruby如果需要的话

下面是另一个Python示例,您可以移植到Ruby,它完全符合OP的要求,假设您的模板文件是SLIDE_TEMPLATE_FILEDRIVE是您的Drive API服务端点,而SLIDES是Slides API的端点。 如果有人给我发了一个Ruby端口,我会用它来更新这个答案。

 # query for template file with one slide TMPLFILE = SLIDE_TEMPLATE_FILE rsp = DRIVE.files().list(q="name='%s'" % TMPLFILE).execute().get('files')[0] # copy template file DATA = {'name': 'Google Drive & Slides API template DEMO'} DECK_ID = DRIVE.files().copy(body=DATA, fileId=rsp['id']).execute().get('id') # create 2 more (1 title-only & 1 blank) slides in copied file reqs = [ {'createSlide': {'slideLayoutReference': {'predefinedLayout': 'TITLE_ONLY'}}}, {'createSlide': {'slideLayoutReference': {'predefinedLayout': 'BLANK'}}}, ] SLIDES.presentations().batchUpdate(body={'requests': reqs}, presentationId=DECK_ID).execute() 

最后,是的,您还可以使用deleteObject请求从演示文稿中删除幻灯片,并传入要删除的幻灯片/页面的ID。 如果您无法隔离ONE SLIDE,则可以采用另一种解决方法:复制整个演示文稿并删除除ONE SLIDE之外的所有页面,然后开始添加新幻灯片。 希望API最终能够获得“正确的解决方案”,这样我们就不必玩这些游戏了。

API无法从API执行此完整操作。 虽然,我们可以create新的或copy现有的Google演示文稿。 或者,我们可以通过ctrl+c一个幻灯片和ctrl+v进入另一个浏览器交互。