首页 > 解决方案 > 如何使用 Google Slides API 在新的演示文稿中定义大师?

问题描述

我正在构建一个以编程方式创建演示文稿的 Android 应用程序。我尝试使用 Java 库和在线交互式幻灯片 API 来创建新的演示文稿并设置母版幻灯片。我从这里开始简单——我想做的就是拥有一张纯蓝色背景的母版幻灯片。这是我创建的 API 调用:

{
  "title": "test",
  "masters": [
    {
      "pageProperties": {
        "pageBackgroundFill": {
          "solidFill": {
            "color": {
              "rgbColor": {
                "blue": 1.0,
                "green": 0.5,
                "red": 1.0
              }
            }
          }
        }
      },
      "pageType": "MASTER",
      "masterProperties": {
        "displayName": "mymaster"
      },
      "objectId": "mymaster1"
    }
  ]
}

结果是 200 OK。我查看结果中的数据,我的主人不在。然而,默认的主人在那里。这太令人抓狂了——我已经为此寻找了好几天。我一定遗漏了一些必填字段——但这并没有被谷歌很好地记录下来。我非常感谢对此的一些指导。

这是我的Java代码:

// Build master -
        List<Page> master = new ArrayList<>();
        master.add(new Page().setPageProperties(new PageProperties().setPageBackgroundFill(new PageBackgroundFill()
                .setSolidFill(new SolidFill().setColor(new OpaqueColor()
                .setRgbColor(new RgbColor().setRed(1.0f).setGreen(0.5f).setBlue(1.0f))))))
                                        .setPageType("MASTER").setObjectId("mymaster1").setMasterProperties(new MasterProperties().setDisplayName("mymaster")));

        // Create presentation
        Presentation presentation = new Presentation()
                .setTitle("test").setMasters(master);
        presentation = mSlidesService.presentations().create(presentation)
                .setFields("presentationId")
                .execute();

标签: androidgoogle-slides-api

解决方案


官方文档具有误导性,显示了请求正文中的所有字段。

它说:

如果提供了presentationId,则将其用作新演示文稿的ID。否则,将生成一个新 ID。请求中的其他字段,包括任何提供的内容,都将被忽略。返回创建的演示文稿。

所以,只有 thetitle和 thepresentationId被使用。batchUpdate()在创建演示文稿后立即使用。

https://developers.google.com/slides/api/reference/rest/v1/presentations/create


推荐阅读