标签: google-apps-script-addon

菜单项不会出现在 Google 表格插件中

我正在尝试制作这个附加插件,可以帮助我和其他人将工作表导出为 JSON。在我的测试中,菜单显示并且所有功能都有效(如屏幕截图中所示)。当我发送到 Google Web Store 上发布时,“Docs Add-ons Advisor”在评论中看不到菜单。因此,正如“Docs Add-ons Advisor”建议的那样,我将其发布为“不公开”,看看它是否适合我。但这不起作用。这是我正在使用的代码和链接。谁能告诉我我做错了什么并帮助我解决它。

插件(未列出):https://chrome.google.com/webstore/detail/export-to-json/fcnpcmbpljkcehfcgllklhbgppinbdd ?hl=en-US&gl=US&authuser=0

参考:

代码:

function onInstall(e) {
  onOpen(e);
}

function onOpen(e) {
  var menu = SpreadsheetApp.getUi().createAddonMenu(); // Or DocumentApp or FormApp.

  if (e && e.authMode == ScriptApp.AuthMode.NONE) {
  // Add a normal menu item (works in all authorization modes).
    menu.addItem('Export to JSON', 'exportInit');
  } else {
    // Add a menu item based on properties (doesn't work in AuthMode.NONE).
    var properties = PropertiesService.getDocumentProperties();
    var workflowStarted = properties.getProperty('workflowStarted');
    if (workflowStarted) …
Run Code Online (Sandbox Code Playgroud)

menu google-sheets google-apps-script google-apps-script-addon

5
推荐指数
1
解决办法
2018
查看次数

在newSelectionInput OnChangeAction上将部分小部件动态添加到Card中

我正在尝试将部分小部件动态添加到newSelectionInput OnChangeAction(已添加卡)上的Card / CardService中。

我没有在Google上看到任何文档,如何实现此行为。

有人可以指导我找到正确的文档或如何执行此操作。

谢谢

google-apps-script google-apps-script-addon gmail-addons

5
推荐指数
1
解决办法
953
查看次数

使用LIMITED身份验证的附加组件无法打开侧边栏

我有一个Google文档插件,可以在文档打开时立即打开侧边栏.当然,这需要在文档中安装和启用加载项.

我看到,自从一周以来,侧边栏自动打开功能在我们的用例中非常有用,不再有效.

在StackDriver日志中,我看到此报告:

onOpen():  {authMode=LIMITED, source=Document, user=} 
publi-2.0.72-2017-11-27-18-57               [this is the publication version tag]
2017-11-27T18:02:50.126Z : show menu 
2017-11-27T18:02:50.180Z : show sidebar 
Error showing sidebar  Exception: You do not have permission to call showSidebar 
2017-11-27T18:02:50.283Z : end onOpen 
Run Code Online (Sandbox Code Playgroud)

很明显,根据插件授权生命周期,加载项处于有限模式并且showSidebar()应该成功(只需查看表中的列LIMITED).

- >我怀疑最近引入了一个bug或一个新的安全限制.

这里的记录是一个代码片段:

/**
 * Basic setup. At the beginning:
 * 1. Add a "Add-ons" menu item.
 * 2. Display the doxMaster sidebar.
 */
function onOpen(e) {
    console.log("onOpen(): ",e)
    console.log(addonversion);
    doServerLog("show menu");
    showMenu();
    doServerLog("show sidebar");
    showSidebar();
    doServerLog("end onOpen");
} …
Run Code Online (Sandbox Code Playgroud)

google-docs google-apps-script google-oauth google-apps-script-addon

5
推荐指数
1
解决办法
320
查看次数

发布新版本的 Google 表格插件

我已经发布了一个供内部使用的 Google Sheets 插件。有用。但我似乎无法发布新版本。我正在关注这个:

https://developers.google.com/gsuite/add-ons/how-tos/manage-addons

鉴于 Google 宣布将于 1 月 28 日后停用 Chrome 应用商店列表,我一直专注于部署到 G Suite Marketplace。我采取的步骤是:

  • 更新应用程序脚本
  • 创建新版本(文件 > 管理版本... > 保存新版本)
  • 编辑 G Suite Marketplace 列表以使用新版本(按照上页“更新您的编辑器插件”下的步骤 4)

当我在示例表格文档中调用附加组件时,无论等待或刷新多少,似乎都不会导致最新部署的代码可见。

google-sheets google-apps-script google-apps-script-addon

5
推荐指数
1
解决办法
1391
查看次数

如何使用 Google Apps 脚本或 API 判断 Google 幻灯片中的幻灯片是否“跳过”?

在 Google 幻灯片中,可以将幻灯片设置为在演示模式下“跳过”(如此处所述

但是,自动页码仍然包括跳过的幻灯片(这意味着在演示模式下,如果4跳过幻灯片,幻灯片编号会直接从 跳转35)。

我想使用 Google Apps 脚本生成我自己的幻灯片编号,以便只计算未跳过的幻灯片。但我不知道如何检查幻灯片是否被标记为“跳过”。

这就是我的想法:

function genSlideNumbers() {
  var preso = SlidesApp.openById('PRESENTATION_ID');
  var slides = preso.getSlides()
  var slide_num = 1
  for (var i = 0; i < slides.length; i++) {
    slide = slides[i]
    if ( /* ?? slide is "skipped" ?? */ ) {
      slides[i].insertTextBox(slide_num);
      slide_num++;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

是否可以?

编辑:不是这个问题的重复,因为我不是问如何跳过幻灯片;我问是否有任何方法可以判断幻灯片是否被跳过。

google-apps-script google-slides google-slides-api google-apps-script-addon

5
推荐指数
1
解决办法
702
查看次数

G Suite 插件拒绝连接到驱动器?如何解决“drive.google.com 拒绝连接”错误?

我正在尝试使用我经常使用的名为 YAMM 的 G Suite 插件。最近,我经常遇到错误“drive.google.com 拒绝连接”。当我联系开发人员时,他们说这是 Google 的问题。我该如何解决?

end-user google-apps-script google-drive-api google-apps-script-addon google-workspace

5
推荐指数
1
解决办法
9791
查看次数

从 Rhino 切换到 V8 导致错误代码 PERMISSION_DENIED

最近我打开我的谷歌的幻灯片脚本运行时间从RhinoV8。我测试了我的附加组件,但出现错误:

We're sorry, a server error occurred while reading from storage. Error code PERMISSION_DENIED.

我的脚本使用PropertiesService.getUserProperties(). 我发现我必须从我的 google 帐户注销并再次登录并且它起作用了

我可以想象这对于使用此附加组件的其他用户来说也可能是痛苦的。有没有其他方法可以解决此错误?

appscript.json 配置

{
  "timeZone": "Europe/Bratislava",
  "runtimeVersion": "V8",
  "dependencies": {
  },
  "exceptionLogging": "STACKDRIVER"
}
Run Code Online (Sandbox Code Playgroud)

此外,我正在我的 PC nad 上开发本地附加组件,使用clasp将代码推送到 App 脚本。

更新

我创建了最小的项目来重现这个错误,我发现这PropertiesService.getUserProperties()不是问题。事实证明,从Rhinoto切换后V8,我无法调用任何 appscript 函数。

// Code.gs
function onInstall(event) {
    onOpen(event);
}

function onOpen(event) {
    SlidesApp.getUi().createAddonMenu()
        .addItem('Open the sidebar', '_showSidebar')
        .addToUi();
    _showSidebar();
}

function _showSidebar() { …
Run Code Online (Sandbox Code Playgroud)

v8 google-apps-script google-slides google-apps-script-addon google-apps-script-runtime

5
推荐指数
1
解决办法
199
查看次数

我怎么能与其父母(侧边栏)沟通页面?

我正在将我的剧本转换成一个补充.其中一个需求是配置模板,因此我编写了一个侧栏,用于启动字段选择器.由于侧边栏没有足够的空间容纳选择器,我必须通过在侧边栏中创建的模式对话框启动它,方法是在服务器端调用此代码:

var html = HtmlService.createHtmlOutputFromFile('TemplatePicker.html')
  .setWidth(600).setHeight(425);
SpreadsheetApp.getUi().showModalDialog(html, 'Select the file with the template');
Run Code Online (Sandbox Code Playgroud)

我的问题是,一旦用户选择文件,当我拥有所选文件的ID时,我无法将该ID传递给侧边栏.我试图调用someJSFunctionOfSidebar(id)parent.someJSFunctionOfSidebar(id),但它没有工作,所以我终于结束了值传递到服务器端,并从那里重新加载侧边栏,但它很慢,产生的效果是丑陋的.

我的问题是:

有没有办法将客户端级别的值从创建的模式对话框传递SpreadsheetApp.getUi().showModalDialog给其父级?也许这不是它的父母,这也是它不起作用的原因.

google-docs google-sheets google-apps-script google-apps-script-addon google-apps-script-web-application

4
推荐指数
2
解决办法
1151
查看次数

以编程方式将容器绑定脚本添加到Google Docs文件

我正在使用Drive REST API将文件上传到Google Drive。我希望默认情况下在这些文件上启用一些默认加载项。我在这里阅读有关容器绑定脚本的信息。

但是,只有在Google Docs UI中打开文件后,才能添加容器绑定脚本。在上载时或以编程方式上载后,是否可以将脚本绑定到文件?

google-apps-script google-drive-api google-apps-script-addon

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

如何使用脚本编辑器(Google Docs 插件)删除 google 文档中的空行?

我正在创建一个 Google Docs 插件,我试图创建的功能之一是减少两个段落之间的空行数量。

因此,举例来说,如果我有 2 个段落,它们之间有 5 个空行/空白行,我希望该功能将空行数减少到 1。

本质上,我需要一种方法来检测空行。我查看了API,认为我需要使用 ReplaceText() 方法来搜索正则表达式模式。但是,我已经尝试过,但没有成功(也许我使用了错误的模式,我不知道)。

谁能帮我找到一种检测空行的方法?谢谢。

编辑:

我刚刚发现 Google 文档不支持所有正则表达式模式。这是该链接: https: //support.google.com/analytics/answer/1034324 ?hl =en。我对正则表达式不熟悉。任何人都可以提供适用于 Google Docs 的替代方案吗?

javascript add-on google-docs google-apps-script google-apps-script-addon

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