You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Google Slides API批量更新主题颜色时遇重复类型错误

问题

创建新演示文稿并设置主题颜色时,运行代码抛出错误:

GoogleJsonResponseException: API call to slides.presentations.batchUpdate failed with error: Invalid requests[0].updatePageProperties: Color scheme cannot have duplicate theme color types

使用的代码:

var presentation = Slides.Presentations.create({
    title: 'colorSchemeTest'
});

var master = presentation.masters[0];
var requests = [{
  updatePageProperties: {
    objectId: master.objectId,
    pageProperties: {
      colorScheme: COLOR_SCHEME
    },
    fields: "colorScheme.colors"
  }
}];
Slides.Presentations.batchUpdate( { requests: requests }, presentation.presentationId );

COLOR_SCHEME定义:

var COLOR_SCHEME = {
  colors: [
    {//Black
      type: "DARK1",
      color: {
        red: 0,
        green: 0,
        blue: 0
      }
    },
    {//Dark Gray
      type: "DARK2",
      color: {
        red: .263,
        green: .263,
        blue: .263
      }
    },
    {//White
      type: "LIGHT1",
      color: {
        red: 1,
        green: 1,
        blue: 1
      }
    },
    {//Whisper Gray
      type: "LIGHT2",
      color: {
        red: .953,
        green: .953,
        blue: .953
      }
    },
    {// Blue 
      type: "ACCENT1",
      color: {
        red: .259,
        green: .522,
        blue: .957
      }
    },
    {// Green 
      type: "ACCENT2",
      color: {                   
        red: .204,
        green: .659,
        blue: .325
      }
    },
    {// Yellow 
      type: "ACCENT3",
      color: {           
        red: .984,
        green: .737,
        blue: .020
      }
    },
    {// Red 
      type: "ACCENT4",
      color: {                   
        red: .918,
        green: .263,
        blue: .208
      }
    },
    {//Purple
      type: "ACCENT5",
      color: {                   
        red: .612,           
        green: .153,
        blue: .690
      }
    },
    {//Gray
      type: "ACCENT6",
      color: {                   
        red: .800,
        green: .800,
        blue: .800
      }
    },
    {//Primary Gray
      type: "TEXT1",
      color: {
        red: .400,
        green: .400,
        blue: .400
      }
    },
    {//Another Gray
      type: "TEXT2",
      color: {
        red: .600,
        green: .600,
        blue: .600
      }
    }
  ]
}
解决方案

错误原因是:新创建的演示文稿母版默认自带一套完整的主题颜色,当你在fields中指定"colorScheme.colors"时,Slides API会尝试将你提供的颜色追加到现有配色方案中,导致颜色类型(如DARK1、LIGHT1等)重复。

只需将updatePageProperties中的fields值从"colorScheme.colors"改为"colorScheme",即可完全替换母版的原有配色方案,避免重复:

修改后的请求代码:

var requests = [{
  updatePageProperties: {
    objectId: master.objectId,
    pageProperties: {
      colorScheme: COLOR_SCHEME
    },
    fields: "colorScheme" // 替换为colorScheme,覆盖整个配色方案
  }
}];

执行上述修改后的代码,就能用自定义的COLOR_SCHEME完全替换母版默认配色,不会再出现重复类型的错误。

内容的提问来源于stack exchange,提问作者Jeffrey Lease

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 21:09:25