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"
}
完成后,描述的解决方案对我有用。
我正在寻找一个 .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"
}
完成后,描述的解决方案对我有用。