小编Emp*_*yee的帖子

在Google Apps脚本中定义可在多个项目中使用的全局变量

我有大约15-20个Google Apps脚本项目,它们都使用相同的全局变量列表.

我所做的是定义项目中第一个脚本文件顶部的所有全局变量,然后将代码块复制并粘贴到每个项目的同一位置.因此,如果我在其中进行更改,我会将整个内容复制并粘贴到其余内容中.这很费时间.

有一个更好的方法吗?它是否使用图书馆?有没有人使用库来跨项目定义全局变量?

javascript global-variables libraries google-apps-script

3
推荐指数
1
解决办法
3827
查看次数

使用HtmlService HtmlTemplate时设置Google Apps脚本showModalDialog的高度

我目前正在将使用已弃用的UI服务的Google Apps脚本更改为HtmlService.

我使用以下代码创建了一个模态对话框(在电子表格容器绑定脚本中):

var htmlTemplate = HtmlService.createTemplateFromFile('testDialogue');

htmlTemplate = template.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);

SpreadsheetApp.getUi().showModalDialog(htmlTemplate, 'Test Dialogue');
Run Code Online (Sandbox Code Playgroud)

对话框打开,但我需要修改其尺寸.

HtmlOutput对象有一个setHeight方法,但HtmlTemplate对象似乎没有相同的方法.

我尝试在对象上使用这个方法,如下所示:

var htmlTemplate = HtmlService.createTemplateFromFile('testDialogue').setHeight(300);
Run Code Online (Sandbox Code Playgroud)

但是这会产生这个错误:

TypeError:在对象HtmlTemplate中找不到函数setHeight

此外,我检查了SpreadsheetApp Ui Class和showModalDialog方法,但它们似乎都没有设置HtmlTemplate对象高度的方法.

google-apps-script

3
推荐指数
1
解决办法
2262
查看次数

如何使用Gmail API,OAuth2 for Apps脚本和域范围委派为G Suite域中的用户设置电子邮件签名

这是我发布的上一个问题/答案的后续内容(如何使用Google电子邮件设置API和OAuth2 for Apps脚本库为Google Apps域中的用户设置电子邮件签名),但我正在创建一个新的问题,因为电子邮件设置API已被弃用,现在流程明显不同.

作为G Suite域的管理员,您如何使用Gmail API 以编程方式通过Google Apps脚本设置域中用户的电子邮件签名?

email google-apps google-apps-script gmail-api google-oauth2

3
推荐指数
1
解决办法
1850
查看次数

如何使用Google电子邮件设置API和OAuth2 for Apps脚本库为Google Apps域中的用户设置电子邮件签名

这是我第一次使用"回答你自己的问题"功能.我希望我做得对.我的标题引发了警告,我的问题看起来很主观,可能会被删除.

我搜索了网站,没有发现任何与我在下面的回复中提到的详细程度相匹配的问题,所以我只想通过发布这个来帮助一些程序员.



作为谷歌Apps域的管理员,你如何使用谷歌电子邮件设置APIOAuth的2以编程方式设置用户的电子邮件签名在谷歌Apps脚本域?

google-apps google-apps-script google-email-settings-api google-oauth

2
推荐指数
1
解决办法
2450
查看次数

调用Gmail API时如何使用fields参数

我在Google Apps脚本中使用Gmail API(基本上是Javascript),我需要尽可能少地调用API,以提高效率和速度.

我正在使用Users.messages:list列出用户邮箱中的消息,响应中包含一个名为的数组messages,对于每条消息,它包含一个id和一个threadId,如下所示:

 "messages": [
  {
   "id": "152b93b1111c33e2",
   "threadId": "152b922266c33e2"
  },
  {
   "id": "152b93338c98cb3",
   "threadId": "152b922266c33e2"
  } ...
Run Code Online (Sandbox Code Playgroud)

但我需要响应以包含有关每条消息的更多信息,这样我就不必单独创建Users.messages:获取每条消息的调用.

Users.messages:list页面上的API Explorer 表示您可以使用fields参数" 指定要包含在部分响应中的字段 ".

当我单击" 使用字段编辑器 "选择我需要的三个项目时,它会将以下内容填入该字段:

messages(id,internalDate,payload)
Run Code Online (Sandbox Code Playgroud)

然后当我执行命令时,它显示GET命令应该如下所示:

https://www.googleapis.com/gmail/v1/users/test@test.com/messages?fields=messages(id%2CinternalDate%2Cpayload)&key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)

但是,messages结果中的数组不包括internalDatepayload字段.它只包含消息id,如下所示:

 "messages": [
  {
   "id": "152b93b1111c33e2"
  },
  {
   "id": "152b93338c98cb3"
  } ...
Run Code Online (Sandbox Code Playgroud)

它也不包括threadId了,但它继续包含threadId如果我选择它作为其中一个字段,如下所示:

messages(id,threadId)
Run Code Online (Sandbox Code Playgroud)

并且URL看起来像这样......

https://www.googleapis.com/gmail/v1/users/test@test.com/messages?fields=messages(id%2CthreadId)&key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)

结果看起来与上面的第一个结果完全一样,我们没有使用fields参数.

所以我知道的fields参数真的在做事情.

考虑到这可能只是API Explorer的限制,我尝试在Google Apps脚本中进行API调用,但它仍然不包括我需要的字段.

api google-api gmail-api

2
推荐指数
1
解决办法
1185
查看次数

使用 Google Data Transfer API 的 insert 方法开始传输

我正在尝试使用Google Admin SDK Data Transfer APItransfers:insert方法。我正在以我的域的超级管理员帐户执行此 API 调用。我已验证为我们的域启用了API 访问,并且超级管理员管理员角色有权使用数据传输 API。

我正在此页面上的 API 资源管理器中对此进行测试。

55656082996是我从Applications:list APIs Explorer为 Google Drive 获取的 ID 字符串。

要求:

POST https://www.googleapis.com/admin/datatransfer/v1/transfers?key={YOUR_API_KEY}
{
 "oldOwnerUserId": "olduser@ourdomain.com",
 "newOwnerUserId": "newuser@ourdomain.com",
 "applicationDataTransfers": [
  {
   "applicationId": "55656082996"
  }
 ]
}
Run Code Online (Sandbox Code Playgroud)

回复:

400 OK
- SHOW HEADERS -
{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "invalid",
    "message": "Invalid value for: Invalid oldOwnerUserId."
   }
  ],
  "code": 400,
  "message": "Invalid value for: Invalid oldOwnerUserId." …
Run Code Online (Sandbox Code Playgroud)

google-api google-apps google-admin-sdk

2
推荐指数
1
解决办法
847
查看次数