Google Apps Script / 如何设置整个段落的背景颜色?

Google Apps Script / How to set background color for a whole paragraph?

我正在寻找一个 .gs 函数来通过 Google 文档扩展更改 Google 脚本中整个段落的背景。

虽然我一直在尝试使用外部 API 调用的 this answer 中的代码片段;并尝试让它工作,理想情况下它会像这样简单:

...
var paragraph = <some way of getting the paragraph>;
paragraph.setBackgroundColor('#112233');
...

更新 1 - UrlFetchApp 是 Google 文档的 403'ing API

突出显示最后一行完全停止工作 - 现在出现异常。

尝试使用已发布答案 here 中的代码后,我从下面得到 403 Unauthorized

  var baseUrl = "https://docs.googleapis.com/v1/documents/";
  var headers = {"Authorization": "Bearer " + ScriptApp.getOAuthToken()};
  // Logged the headers and it contains a bearer token, so it's not empty or null.
  var params = {headers: headers};
  // 403 from UrlFetchApp querying for docs.googleapis.com
  var res = UrlFetchApp.fetch(baseUrl + id + "?fields=*", params);

这是我在范围内的内容:

https://www.googleapis.com/auth/documents.currentonly
https://www.googleapis.com/auth/script.container.ui
https://www.googleapis.com/auth/script.external_request

这里是 appsscript.json 的片段:

  "timeZone": "REDACTED",
  "dependencies": {
    "enabledAdvancedServices": [{
      "userSymbol": "Docs",
      "serviceId": "docs",
      "version": "v1"
    }]
  },
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8"
}

我已经通过 Resources->Advanced Google Services 打开了文档 API 访问权限,它看起来像是通过菜单激活的:

原问题

看起来我们有这个答案可用:https://webapps.stackexchange.com/questions/126354/how-can-i-set-a-background-color-for-an-entire-paragraph

但在尝试时,它只是更改了段落最后一行的背景,而不是设置整个段落,就像 gif 显示的那样。它还在使用额外的电话;所以我想知道也许有一个更新的 API 可以直接设置段落背景(文档中没有指出)。

我得到了发布的答案 here 开始工作。 我必须在 appsscript.json 中明确设置文档服务 - 出于某种原因检测它还不够。

我的 appsscript.json 看起来像这样:

{
  "timeZone": "...",
  "dependencies": {
      "enabledAdvancedServices": [{
        "userSymbol": "Docs",
        "serviceId": "docs",
        "version": "v1"
      }]
  },
  "oauthScopes": [
    "https://www.googleapis.com/auth/documents",
    "https://www.googleapis.com/auth/script.container.ui",
    "https://www.googleapis.com/auth/script.external_request"
  ],
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8"
}

完成后,描述的解决方案对我有用。