容器绑定脚本尝试从侧边栏使用 google.script.run 运行函数时出现权限错误

2023-11-30

我尝试在电子表格上实现侧边栏,以获取用户输入以供我的脚本使用。我无法让它成功调用任何服务器端函数。我将谷歌文档中的一个简单脚本和我读过的几个 stackoverflow 问题放在一起,但我不断收到错误。它能够打印到控制台,但尝试调用时出错日志文本()功能与谷歌脚本运行.

脚本文件:

function onOpen() {
  SpreadsheetApp.getUi()
      .createMenu('Extra Functions')
      .addItem('Show sidebar', 'showSidebar')
      .addToUi();
}
function showSidebar() {
  var html = HtmlService.createHtmlOutputFromFile('Test')
    .setTitle('Testing')
    .setWidth(300);
  SpreadsheetApp.getUi()
    .showSidebar(html);
}
function logInput(text) {
  Logger.log(text);
}

HTML 文件(Test.html):

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
    function onFailure(error) {
      var div = document.getElementById('output');
      div.innerHTML = "ERROR: " + error.name + ": " + error.message;
    }
    function logText(){
      var txt = document.getElementById("txt_input").value;
      console.log(txt);
      google.script.run.withFailureHandler(onFailure).logInput(txt);
    }
    </script>
  </head>
  <body>
    <label for="txt_input">Input Text:</label>
    <input type="text" id="txt_input"><br>
    <button onclick='logText()'>Send Name</button><br>
    <div id="output"></div>
  </body>
</html>

我尝试在新的 Apps Script V8 和 Apps Script Legacy 上运行它,但每个错误都略有不同。

Apps 脚本旧版

错误:脚本错误:您无权执行该操作。请请求该项目的所有者授予您访问权限。

应用程序脚本 V8

错误:ScriptError:很抱歉,从存储读取时发生服务器错误。错误代码 PERMISSION_DENIED。

我一直在研究授权,但据我所知,它拥有作为容器绑定脚本所需的所有权限(https://developers.google.com/apps-script/guides/bound)。它有/auth/script.container.uiOAuth 范围,应允许“在 Google 应用程序内的提示和侧边栏中显示和运行第三方网页内容”,以及/auth/电子表格范围。我也是电子表格和脚本项目的所有者。

由于它不作为 Web 应用程序运行,因此不需要部署,也不需要 doGet() 函数。https://developers.google.com/apps-script/guides/html#serve_html_as_a_google_docs_sheets_slides_or_forms_user_interface


我遇到了同样的问题,对我来说,问题是用户使用多个谷歌帐户登录。它可能也适用于您的情况。用户尝试仅使用一个帐户登录,权限问题消失了。

这与安装自定义插件时可能出现的问题相同。 希望能帮助到你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

容器绑定脚本尝试从侧边栏使用 google.script.run 运行函数时出现权限错误 的相关文章

  • 以跨浏览器兼容的方式触发 onresize

    我想从后面的 C 代码触发 onresize 事件 我认为这可以完成 Page clientScript RegisterScriptBlock this getType id javascript code 我尝试过 element on
  • 在 for 循环内顺序执行 Promise

    我正在努力将两个承诺链接到一个循环中 以便第二个承诺在第一个承诺得到解决之前不会启动 我看到了一个减少的例子 还无法让它工作 如果我这样做 就像我现在所做的那样 代码会并行执行 就像这样 所有异步请求都会被触发 当然结果会很混乱 请看一下
  • JavaScript 文件中的快速低冲突非加密哈希

    我正在寻找一种用 JavaScript 实现的低冲突的快速哈希 它不需要是加密哈希 我基本上使用它作为查看给定文件是否已上传 或部分上传 到用户帐户的方式 以节省他们在大型 视频 文件上上传的时间 我正在使用新的 HTML5 文件 API
  • 如何使用 TypeScript 和 Angular 2 将插件添加到 ng2-ckeditor ?

    我正在尝试添加Justify插件到我的 ckeditor 但不幸的是我找不到任何关于如何将插件添加到 ng2 ckeditor 的信息 另外 我找不到任何应该添加插件的目录或配置文件 我正在使用 ng2 ckeditor1 0 6使用 Ty
  • 如何使用多重身份验证 - firebase?

    我有一个注册屏幕 其中包含 用户名 电子邮件 电话号码 密码 在本例中 我使用电话号码身份验证来验证号码 因此在用户验证他的号码后 我将他的数据保存到 firebase DB 中 所以在那之后 我将下摆导航到登录屏幕 应该包含电子邮件 密码
  • 将 PictureStream 转换为 HTML5 画布

    我正在从 net Web 服务检索图片流的字节数组 JSON 字节数组响应如下所示 137 80 78 372 617 more 我正在尝试转换这个字节数组并将其绘制到 HTML 画布中 如下所示 var context document
  • ng-include 跨域帮助 angularjs

    我正在尝试为加载到 ng include 跨域的 url 实现白名单 这是一场噩梦 我有一个在本地运行良好的包含 div div 然后我像这样添加白名单 angular module myApp ngRoute ngResource con
  • async.js 和系列问题

    连接后尝试运行 fetch 提取比连接更快 并且在控制台中我收到提取错误 因为它返回结果的速度比连接完成的速度快 但在异步系列的文档中 有一个工具可以在第一个返回结果后运行第二个函数 Settimeouts 可以保存情况 但它并不美观 当一
  • 在 AngularJS 中将数组绑定到指令变量

    我正在尝试将数组放入模板中 以便我可以使用其中的各个值 我的问题是 该属性一旦进入我的模板就会变成字符串 因此它不再可以作为 var 0 访问 而是返回 字符串 的第一个字符 通常是 这是数据的简化设置 varForward 100 1 v
  • 无法在react-native android中设置ShadowColor

    环境 环境 操作系统 macOS High Sierra 10 13 1 节点 8 9 1 纱线 0 17 10 npm 5 6 0 守望者 4 7 0 Xcode Xcode 9 2 内部版本 9C40b Android Studio 2
  • 使用 Leaflet 加载页面时 moveend 事件多次触发

    我需要在地图平移或缩放时执行一些操作 因此我向该事件附加了一个回调moveend map on moveend function code stuff 它工作正常 但是当页面加载时 该事件被触发三次 我不知道为什么 可能是因为在创建过程中地
  • Chrome 扩展程序不会从弹出文件加载我的 JavaScript

    我正在为论坛构建 Chrome 扩展程序 但问题是我的 popup html 的 JavaScript 不会执行任何操作 我在顶部添加了警报 popup js running 它确实出现了 但我的弹出窗口根本不显示 这是一个问题 因为弹出页
  • 类型“AngularFirestoreCollection”上不存在属性“onSnapshot”

    我正在尝试将侦听器与云 Firebase 分离 但仍然收到此错误 类型 AngularFirestoreCollection 上不存在属性 onSnapshot 你知道我应该进口什么吗 我直接从 Firebase 文档中复制此代码 let
  • Javascript 桥接到 Flash 以在 Flash 中存储 SO“cookie”

    读完这个问题后如何唯一地识别访问我网站的计算机 https stackoverflow com questions 216542 how do i uniquely identify computers visiting my web si
  • Primefaces、JavaScript 和 JSF 不能很好地协同工作,或者我做错了什么

    这是非常简单的事情
  • JavaScript 中什么可能会打乱我的查询字符串参数构造函数?

    所以这可能是一个很长的机会 但我完全不知道可能导致这个问题的原因 我正在提供一个客户端 JavaScript 它解析嵌入的页面上的某些参数 使用这些参数构建 URL 并使用该 URL 将 iframe 注入到页面中 如下所示 var que
  • 处理流星中的长服务器端计算

    我正在使用 jimp https www npmjs com package jimp https www npmjs com package jimp 在meteor JS中生成图像服务器端 换句话说 我正在使用递归算法 计算 图像的像素
  • javascript中的快捷方式融合优化

    我听说 lodash 和其他 javascript 库使用一种称为 快捷融合 的技术进行优化 但在任何地方都找不到该技术的详细解释 任何人都可以提供链接或举例解释 快捷方式融合 的含义吗 对于一个非常简短且不清楚的解释 https wiki
  • 如何使用 jQuery 隐藏和显示 CKEditor?

    以下代码应允许隐藏 显示 CKEditor 表单 a Hide a a Show a
  • Angular:DOM更新后调用方法

    我正在从 html 调用一个方法 调用休息服务 来增加 减少屏幕上的计数 现在我想调用另一个方法 即 getThreshold 来检查计数是否达到阈值 如果是 我想显示一条确认消息 我想首先更新屏幕上的计数 然后调用该函数来检查它是否达到阈

随机推荐

  • 写入 selenium 数据时 CSV 为空

    我正在第一次体验 Selenium 并在一个著名的视频平台上做了一些教程 大多数时候它工作得相当可靠 但是 我遇到了一些问题 创建了 CSV 但未导出数据 CSV 被 触及 但它不会导出正常打印中显示的数据 谁能帮我看看这个脚本的问题出在哪
  • AngularJS 文本区域按 Enter 键换行

    我正在开发一个 AngularJS 应用程序 就像我们在 stackoverflow 上发布答案和问题一样 我们可以在文本区域下方实时预览答案或问题 这是我的试用代码 索引 html div div
  • FormData.get 函数未定义

    FormData get 在 Chrome 中未定义 https developer mozilla org en US docs Web API FormData get 默认情况下 Chrome 不支持 get 方法 以及delete
  • 使用 PDFBox 从 PDF 中读取某些 unicode 字符时出现问题

    我是 PDFBOX 新手 我正在阅读印地语的 PDF 文件 我在使用 PDFBox 从 PDF 中读取某些 unicode 字符时遇到问题 我想将字符串复制到 java 对象中 以便我可以处理它 我尝试了一些方法来读取文件 1 我尝试使用P
  • 如何在分组项目页面中每组之前插入图像列表?

    我目前正在使用 XAML 和 C 开发 Windows 8 应用程序 我开发了动态生成数据组的分组项目页面 我有一个社交媒体图标列表 我需要将其放在每个组标题旁边 但在左侧对齐 如屏幕截图所示 当我在 XAML 代码中添加列表时 它会在第一
  • Makefile c++11 支持

    我最近开始了一个 C 的小项目 我创建了一个简单的 Makefile CC g CFLAGS std c 0x I c VPATH src include vpath c src vpath h include TabooSearch ma
  • 如何在 Visual Studio 中连接到 MySQL 数据源

    我用MySQL 连接器 网络通过引用程序集 MySql Data dll 并传入连接字符串来连接到我的数据库MySqlConnection 我喜欢这样 因为我不需要安装任何东西 有没有办法在 Visual Studio 2010 中 选择数
  • 为什么我会遇到找不到类异常

    我在用DeferredTextImpl类和 eclipse 似乎没有抱怨它 但是当我运行我的项目时 我得到运行时异常 Class not found exception for DeferredTextImpl 当我搜索类文件时 我发现它在
  • 如何在 Objective C 中使用 AssetLibrary 检索视频的文件大小

    我想知道如何使用 AssetLibrary 检索视频的文件大小 有人能指出我正确的方向吗 或者可能有一些代码片段 这应该会让你走上正轨 看资产库框架参考 void logVideoSizes void assetEnumerator ALA
  • 为什么 xUnit Runner 找不到我的测试

    我有一个 xUnit net 测试如下 static class MyTestClass Fact static void MyTestMethod VS 2012 的 xUnit 插件说 没有发现可以运行的测试 TestDriven ne
  • ASP.NET MVC 中的 ELMAH 和异常管理

    我正在考虑从企业库中的异常管理应用程序块转移到新的 ASP NET MVC 站点 Scott Hansleman 在 ELMAH 上的帖子引起了我的注意 但我并不完全理解这种方法 通常 我会抑制一些异常 可恢复的异常 将它们记录在中央存储库
  • 在python中读取TDMS文件如何使用tdms info命令?

    我想知道Labview生成的tdms文件的内容是什么 按照此site 我用Python写 import numpy as np from nptdms import TdmsFile from nptdms import tdms read
  • 在外部网站上自动填写和提交表格

    我想知道一个人如何自动填写多个表格 使用bot local server 使用ajax或curl在外部站点 PHP 的多个页面上 例如一个网站www abc com index php有一个表格
  • 配置.vimrc时如何映射命令键?

    我使用 mac 我想配置 vimrc 例如 map
  • 模拟时间序列

    在最近的宏观经济预测在线课程中 有一个建模练习 y t 3 0 0 55 y t 1 e t where e t 定义为 et lt c 1 2138662 0 2854597 0 5902700 0 8285463 0 9954260 0
  • n 元函数的 Uncurry

    我有一个类型级别的数字 data Z deriving Typeable data S n deriving Typeable 和 n 元函数 来自固定向量包的代码 Type family for n ary functions type
  • 如何对 data.table 中的 .SD 列进行行明智操作

    虽然我之前已经弄清楚了这一点 但我仍然发现自己在 stackoverflow 上搜索 并且无法找到 这个语法 所以 我想对 data table 列的子集进行行明智操作 使用 SD and SDcols 我永远不记得手术是否需要sapply
  • Pandas 按组计算过去 n 天内发生的事件次数

    我有按 id 发生的事件表 如何计算过去 n 天内每种事件类型在当前行之前发生的次数 例如 事件列表如下 df pd DataFrame id 1 event day 2016 01 01 event type type1 id 1 eve
  • 将 lambda 参数传递给 include 语句

    我正在使用System Data Entity命名空间 因此我可以将 lambda 表达式传递给 Linq Include 方法 public ICollection
  • 容器绑定脚本尝试从侧边栏使用 google.script.run 运行函数时出现权限错误

    我尝试在电子表格上实现侧边栏 以获取用户输入以供我的脚本使用 我无法让它成功调用任何服务器端函数 我将谷歌文档中的一个简单脚本和我读过的几个 stackoverflow 问题放在一起 但我不断收到错误 它能够打印到控制台 但尝试调用时出错日